Forum
Merhaba.
'BAKİYE' den ' işaretini kaldırırsanız sorununuz çözülür. BAKİYE ola
SELECT MAHSUP.HESAP, MAHSUP.BORC, MAHSUP.ALACAK, (BORC-ALACAK) AS BAKİYE
FROM ETA_STOKGIRIS_2007.dbo.MAHSUP MAHSUP
WHERE (MAHSUP.HESAP='320.01.001')
olacak yani.
Mert Bey;
O şekilde olamaz.Her satırda borçtan alacağı çıkarttığında borç ile alacağın farkını bulursun.Bakiyeyi değil.
Yürüyen bakiyeyi bulmak için gerekli sorguda önceki kayıtlardaki toplamı bulabilmek için Unique Key'e ihtiyaç var.
Sizin sorgunuzda böyle bir alan olmadığı için MID adında bir alan olduğunu varsaydım.
Sizde Unique Key olarak hangi alan varsa MID yerine o alanı kullanmalısınız.
SELECT M.HESAP, M.BORC, M.ALACAK,
(SELECT SUM(BORC-ALACAK) FROM ETA_STOKGIRIS_2007.dbo.MAHSUP MAHSUP WHERE MID<=M.MID) AS BAKIYE
FROM ETA_STOKGIRIS_2007.dbo.MAHSUP AS M
WHERE M.HESAP='320.01.001'
ORDER BY M.MID
---
Aslında böyle bir sorguda sıralama için kullanılan en önemli alan Tarih alanıdır.
Yani Stok veya Cari Ekstresi alınırken, genelde Tarih alanına göre sıralama yapılır.
Tarih alanına göre sıralama kontrolü yapılmış olarak aşağıdaki sorguyu kullanabilirsiniz.
SELECT M.HESAP, M.TARIH, M.BORC, M.ALACAK,
(SELECT SUM(BORC-ALACAK) FROM ETA_STOKGIRIS_2007.dbo.MAHSUP MAHSUP WHERE (TARIH<M.TARIH) OR (TARIH=M.TARIH AND MID<=M.MID)) AS BAKIYE
FROM ETA_STOKGIRIS_2007.dbo.MAHSUP AS M
ORDER BY M.TARIH, M.MID
Kümülatif toplama işlemi CariID ye göre yapılacaksa nasıl olacak?
yani..
MusteriID SiparisGrupID IslemTurAd BORC ALACAK BAKİYE
3 20170929184004 Ürün Alındı 0.00 10.00 10.00
3 20170929184029 Ürün Alındı 0.00 10.00 20.00
3 20170929184057 Ürün Alındı 0.00 10.00 30.00
3 20170929184004 Para Verildi 10.00 0.00 20.00
3 20170930164825 Ürün Satıldı 10.00 0.00 10.00
5 20170930174109 Ürün Satıldı 100.00 0.00 -90.00
CariID değişmesine rağmen toplama çıkarma işlemine devam ediyor. Yazdığım sorgu kodu aşağıda..
SELECT M.MusteriID, M.SiparisGrupID, M.IslemTurAd, M.BORC, M.ALACAK,
(SELECT SUM(Alacak-Borc) FROM CariEkstreView MAHSUP WHERE MusteriID<=M.MusteriID and GenelEkstreID<=m.GenelEkstreID) AS BAKİYE
FROM CariEkstreView AS M
ORDER BY M.GenelEkstreID ,M.MusteriID
Merhaba,
GROUP BY kullanıldığında sorun kalmaycak.
"Dalgasız denizde, herkes kaptandır."