assenucler
Altın Üye
- Katılım
- 19 Ağustos 2004
- Mesajlar
- 3,554
- Excel Vers. ve Dili
- Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
- Altın Üyelik Bitiş Tarihi
- 29-05-2025
Bilgilendirme ve eklenen dosya için teşekkürler.
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
BAKIYE = "SELECT SUM(IIF(BA='B',TUTAR,TUTAR*-1,)) FROM CARTH001 WHERE CARKOD=A.CARKOD AND TARIH<=A.TARIH "
sorgu = "SELECT A.CARKOD,A.TARIH,IIF(A.BA='B',A.TUTAR,0)AS BORC ,IIF(A.BA='A',A.TUTAR*-1,0) AS ALACAK,(" & BAKIYE & ") AS BAKIYE FROM CARTH001 A order by A.CARKOD,A.TARIH"
CARKOD TARIH BORC ALACAK BAKIYE
12001001 10.03.2020 600 0 600
12001001 12.03.2020 600 0 1200
12001001 13.03.2020 0 -500 700
12001001 14.03.2020 0 -500 200
12001001 16.03.2020 0 -500 -300
12001001 17.03.2020 0 -500 -800
12001001 18.03.2020 750 0 -50
12001001 19.03.2020 30 0 -20
12001001 20.03.2020 300 0 280
12001001 22.03.2020 0 -400 -120
12001001 22.03.2020 0 -1500 -1620
12001001 23.03.2020 0 -1200 -2820
12001001 23.03.2020 1800 0 -1020
12001001 23.03.2020 500 0 -520
12001001 25.03.2020 1200 0 680
12001002 15.03.2020 0 -500 -500
12001003 18.03.2020 750 0 1500
12001003 18.03.2020 750 0 1500
12001004 23.03.2020 1800 0 1800
32001001 24.03.2020 0 -500 -500
32001001 25.03.2020 140 0 -360
BAKIYE = "SELECT SUM(IIF(BA='B',TUTAR,TUTAR*-1,)) FROM CARTH001 WHERE CARKOD=A.CARKOD AND TARIH<=A.TARIH "
SORGU1 = "SELECT A.CARKOD,A.TARIH,IIF(A.BA='B',A.TUTAR,0)AS BORC ,IIF(A.BA='A',A.TUTAR*-1,0) AS ALACAK,(" & BAKIYE & ") AS BAKIYE FROM CARTH001 A order by A.CARKOD,A.TARIH"
sorgu = "SELECT CARKOD,TARIH,BORC,ALACAK,IIF(BAKIYE<0,ABS(BAKIYE),0) AS BORCBAKIYE ,IIF(BAKIYE>0,BAKIYE,0)AS ALACAKBAKIYE FROM (" & SORGU1 & ")"
CARKOD | TARIH | BORC | ALACAK | BORCBAKIYE | ALACAKBAKIYE |
12001001 | 10.03.2020 | 600 | 0 | 0 | 600 |
12001001 | 12.03.2020 | 600 | 0 | 0 | 1200 |
12001001 | 13.03.2020 | 0 | -500 | 0 | 700 |
12001001 | 14.03.2020 | 0 | -500 | 0 | 200 |
12001001 | 16.03.2020 | 0 | -500 | 300 | 0 |
12001001 | 17.03.2020 | 0 | -500 | 800 | 0 |
12001001 | 18.03.2020 | 750 | 0 | 50 | 0 |
12001001 | 19.03.2020 | 30 | 0 | 20 | 0 |
12001001 | 20.03.2020 | 300 | 0 | 0 | 280 |
12001001 | 22.03.2020 | 0 | -400 | 120 | 0 |
12001001 | 22.03.2020 | 0 | -1500 | 1620 | 0 |
12001001 | 23.03.2020 | 0 | -1200 | 2820 | 0 |
12001001 | 23.03.2020 | 1800 | 0 | 1020 | 0 |
12001001 | 23.03.2020 | 500 | 0 | 520 | 0 |
12001001 | 25.03.2020 | 1200 | 0 | 0 | 680 |
12001002 | 15.03.2020 | 0 | -500 | 500 | 0 |
12001003 | 18.03.2020 | 750 | 0 | 0 | 1500 |
12001003 | 18.03.2020 | 750 | 0 | 0 | 1500 |
12001004 | 23.03.2020 | 1800 | 0 | 0 | 1800 |
32001001 | 24.03.2020 | 0 | -500 | 500 | 0 |
32001001 | 25.03.2020 | 140 | 0 | 360 | 0 |
Elbette, hatta text dosyaları için bile. Ücretsiz versiyon olan Express işimizi görür.
Linked server detaylar : https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addlinkedserver-transact-sql?view=sql-server-ver15
Düzenleme,
OVER Clause : https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-ver15
.
Haluk bey link olarak paylaşabilirmisiniz rica etsem
Bence on numara çalışma oldu Haluk bey, Elinize sağlık. umarım faydalı bir çalışma forum kullanıcıları için.Mesajınızı görmemişim.... dosyanın harici linki aşağıdadır. Siz indirdikten sonra, linki kaldıracağım.
Not: Sorgulama yapılacak tarih aralığının belirlenmesi opsiyonunu da ilave ettim.
ADO_YuruyenBakiye_7.rar
drive.google.com
Bu arada; bazı testler yapmak için, siz de içinde daha fazla veri (Cari Kod) olan bir MDB dosyası eklerseniz iyi olur. Bende Access yok, sizin dosyaya data ilave etmek için biraz uğraşmam gerekir yoksa....
.
Sub RAPORLA()
Dim cn As OleDbConnection
Dim objReader As OleDbDataReader
Dim objDataset As DataSet = New VeritabanıDataSet
Dim sorgu As String
cn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\VeriTabanı\Veritabanı.mdb" & ";Persist Security Info=False;")
' Dim frm = F_CariTakip
Dim KOSUL = "CARKOD LIKE '%" & CARKOD.Text & "%' AND ISLEMTIPI LIKE '%" & ISLEMTIPI.Text & "%' AND TARIH BETWEEN @d1 and @d2 "
Dim UNVAN = "SELECT DISTINCT(UNVAN) FROM CARTM001 WHERE CARKOD=A.CARKOD"
Dim BAKIYE = "SELECT SUM(IIF(BA='B',TUTAR,TUTAR*-1,)) FROM CARTH001 WHERE CARKOD=A.CARKOD AND TARIH<=A.TARIH "
Dim SORGU1 = "SELECT A.CARKOD,A.ISLEMTIPI,A.ACIKLAMA,A.TARIH,IIF(A.BA='B',A.TUTAR,0)AS BORC ,IIF(A.BA='A',A.TUTAR,0) AS ALACAK,(" & BAKIYE & ") AS BAKIYE FROM CARTH001 A " & _
" WHERE " & KOSUL & " order by A.CARKOD,A.TARIH"
sorgu = "SELECT CARKOD,(" & UNVAN & ") AS UNVAN,TARIH,ISLEMTIPI,ACIKLAMA,BORC,ALACAK,IIF(BAKIYE<0,ABS(BAKIYE),0) AS BORCBAKIYE ,IIF(BAKIYE>0,BAKIYE,0)AS ALACAKBAKIYE FROM (" & SORGU1 & ") "
Dim cm2 As New OleDbCommand(sorgu, cn)
cm2.Parameters.Add("@d1", SqlDbType.Date).Value = ILKTAR.Value.ToShortDateString
cm2.Parameters.Add("@d2", SqlDbType.Date).Value = SONTAR.Value.ToShortDateString
' Dim dr2 As OleDbDataReader = cm2.ExecuteReader
cm2.CommandType = CommandType.Text
cm2.Connection.Open()
objReader = cm2.ExecuteReader
objDataset.Tables(0).Clear()
objDataset.Tables(0).Load(objReader)
objReader.Close()
cn.Close()
Dim rds As ReportDataSource = New ReportDataSource
rds.Name = "CariHareketler"
rds.Value = objDataset.Tables(0)
Dim paramList As New Generic.List(Of ReportParameter)
With Me
.ReportViewer1.LocalReport.ReportPath = Replace(Application.StartupPath, "\bin\Debug", "") & "\Report1.rdlc"
.ReportViewer1.LocalReport.DataSources.Clear()
.ReportViewer1.LocalReport.DataSources.Add(rds)
.ReportViewer1.ShowPrintButton = True
.ReportViewer1.RefreshReport()
End With
Me.ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout)
Me.ReportViewer1.ZoomMode = ZoomMode.PageWidth
End Sub
Mesajınızı görmemişim.... dosyanın harici linki aşağıdadır. Siz indirdikten sonra, linki kaldıracağım.
Not: Sorgulama yapılacak tarih aralığının belirlenmesi opsiyonunu da ilave ettim.
ADO_YuruyenBakiye_7.rar
drive.google.com
Bu arada; bazı testler yapmak için, siz de içinde daha fazla veri (Cari Kod) olan bir MDB dosyası eklerseniz iyi olur. Bende Access yok, sizin dosyaya data ilave etmek için biraz uğraşmam gerekir yoksa....
.
SORGU = "SELECT A.*, DateAdd('S', RIGHT(ID,5), TARIH),(SELECT SUM(TUTAR)FROM TBL WHERE A.CARKOD=CARKOD AND DateAdd('S',RIGHT(ID,5), TARIH)<=DateAdd('S', RIGHT(A.ID,5), A.TARIH)) AS BAKIYE FROM TBL A WHERE CDATE(A.TARIH) >= CDATE('01.01.2020') ORDER BY A.CARKOD,A.TARIH,A.ID "