Sql tabanlı yaptığım bir programda aşağıdaki kod ile bir tablo oluşturdum. Bu tabloya gelen verileri fast reportta rapor alıyorum ama yapmak istediğim borç ve alacakların toplamlarını ayrı ayrı almak istiyorum. yani eksi bakiler ile artı bakiyeleri borç toplamı ve alacak toplamı diye fast reportta göstermek istiyorum.
select
ISNULL((select sum (BORÇ-ALACAK) from URUN where CARİKODU=URUN.KODU),0) BAKIYE,
(case when ISNULL((select sum (BORÇ-ALACAK) from URUN where CARİKODU=URUN.KODU),0)>0 then '(Borç)'
when ISNULL((select sum (BORÇ-ALACAK) from URUN where CARİKODU=URUN.KODU),0)<0 then '(Alacak)'
Else '(-)' end ) BA
from CARI
ekran görüntüsü ektedir oradaki ( - ) bakiyeleri ayrı ( + ) bakiyeleri ayrı toplamak istiyorum. yardımcı olursanız sevinirim. bu arada projemi delphide yapıyorum.
SQL de bakiye toplama
SQL de bakiye toplama
- Dosya ekleri
-
- ekran grntüsü.jpg (3.56 KiB) 3146 kere görüntülendi
Re: SQL de bakiye toplama
Merhaba,
Bakiye toplamını cross apply'a aldım, kod tekrarı azaldı.
Bunu view gibi birşeye koyuver. Mesela vw_bakiye. İkinci aşamada da sorgudan sorgu çekersen olacak.
Bakiye toplamını cross apply'a aldım, kod tekrarı azaldı.
Kod: Tümünü seç
select
bakiye.Toplam
, case
when bakiye.Toplam > 0 then '(Borç)'
when bakiye.Toplam <= 0 then '(Alacak)'
end Aciklama
cross apply (
select (select sum (BORÇ-ALACAK) from URUN where CARİKODU=URUN.KODU) Toplam
) bakiye
from CARI
Kod: Tümünü seç
select
sum(case when bakiye.Toplam < 0 then bakiye.Toplam else 0 end) NegatifToplam
, sum(case when bakiye.Toplam >= 0 then bakiye.Toplam else 0 end) PozitifToplam
from vw_bakiye
Re: SQL de bakiye toplama
teşekkürler