Merhaba arkadaşlar;
Konu bütünlüğü tam sağlansın diye son sorumu kendim cevaplıyorum.
Kod: Tümünü seç
Kod Adi Arac_No Alacak
1 ugur 1 300
2 ahmet 1 200
3 murat 1 100
-- Toplam 1 600
4 irem 2 200
5 hayro 2 100
-- Toplam 2 300
-- Genel Toplam -- 900
Yukarıdaki sorunun cevabı;
Kod: Tümünü seç
select kod, adi, arac_no, sum(alacak) from hareket group by kod, adi, arac_no
union
select CAST('----' AS varchar(15)), CAST(' --Toplam--' AS varchar(20)),
arac_no, sum(alacak) from hareket group by arac_no
union
select CAST('----' AS varchar(15)), CAST(' --Genel Toplam--' AS varchar(20)),
CAST('99999' AS integer), sum(alacak) from hareket
order by 3,1 DESC
Arkadaşlar yukarıdaki gibi benzer bir sonucu, projemde kullandığım şekilde yazıyorum,join kullanılarak. İlgilenen arkadaşlara faydası olacağından eminim...
Kod: Tümünü seç
select c.kod, ch.ad, ch.soy,kod1_ID,sum(ch.borc) as ToplamBorc,
sum(ch.alacak) as ToplamAlacak,
case when (sum(borc)-sum(alacak))>0 then
sum(borc)-sum(alacak) else 0 end,
case when (sum(borc)-sum(alacak))<0 then
sum(alacak)-sum(borc) else 0 end
from carihareket ch
inner join CARIKART C on C.CARI_ID=CH.CARI_ID
and c.kod1_ID in (select kodlar_iz from carikodtanim)
group by c.kod, ch.ad,ch.soy,kod1_ID
-----------
union
-----------
select CAST('----' AS varchar(15)), CAST('----' AS varchar(20)),
CAST('--Toplam--' AS varchar(20)),kod1_ID
,sum(ch.borc) as ToplamBorc,
sum(ch.alacak) as ToplamAlacak,
case when (sum(borc)-sum(alacak))>0 then
sum(borc)-sum(alacak) else 0 end,
case when (sum(borc)-sum(alacak))<0 then
sum(alacak)-sum(borc) else 0 end
from carihareket ch
inner join CARIKART C on C.CARI_ID=CH.CARI_ID
and c.kod1_ID in (select kodlar_ID from carikodtanim)
group by carikart.kod1_ID
-----------
union
-----------
select CAST('----' AS varchar(15)), CAST('----' AS varchar(20)),
CAST('--Genel Toplam--' AS varchar(20)),CAST('999999999' AS integer)
,sum(ch.borc) as ToplamBorc,
sum(ch.alacak) as ToplamAlacak,
case when (sum(borc)-sum(alacak))>0 then
sum(borc)-sum(alacak) else 0 end,
case when (sum(borc)-sum(alacak))<0 then
sum(alacak)-sum(borc) else 0 end
from carihareket ch
inner join CARIKART C on C.CARI_ID=CH.CARI_ID
and c.kod1_ID in (select kodlar_iz from carikodtanim)
--------------
order by 4,1 desc, 5 desc
Ayrıca Union konusunu anlamamda yardımı olan @Onaydın'a tekrar teşekkür ederim.
herkese sevgiler...