Forum

MS-SQL Sum,Union so...
 
Bildirimler
Hepsini Temizle

MS-SQL Sum,Union sorgusu

emre_ugur
(@emre_ugur)
Üye

Merhaba,

2 tabloyu union ile birleştiriyorum. Yapmış olduğum sorgu aşağıdadır. Sonuçları görüntülüyorum ama tek isteğim Fatura numaralarını ve içerisindeki kalemleri tek tek gösteriyor. Bu faturaları tek satıra alıp tutar kısmına toplamını yazmak istiyorum. Nasıl yapabilirim.(MNo:Müşteri No, FNo:FaturaNo)

SELECT Gecici.MNo, Musteri.MAdi, Musteri.BAdi, Gecici.FaturaTutar, Gecici.FaturaTarih, Gecici.FNo, Gecici.TahsilatTutar, Gecici.TahsilatTarih, Gecici.GFNo, (SELECT CAST(CASE WHEN Gecici.TahsilatTutar >= Gecici.FaturaTutar THEN 1 ELSE 0 END AS bit)) AS 'Odendi' FROM Gecici INNER JOIN Musteri ON Gecici.MNo = Musteri.MusteriNo UNION ALL SELECT Aktarim.MNo, Musteri.MAdi, Musteri.BAdi, Aktarim.TTutar, Aktarim.FaturaTarih, Aktarim.FNo, Aktarim.YTutar, Aktarim.YTarih, Aktarim.GFNo, (SELECT CAST(CASE WHEN Aktarim.YTutar >= Aktarim.TTutar THEN 1 ELSE 0 END AS bit)) AS 'Odendi' FROM Aktarim INNER JOIN Musteri ON Aktarim.MNo = Musteri.MusteriNo ORDER BY MNo

Alıntı
Konu başlatıcı Gönderildi : 26/11/2013 13:39
oldmember
(@yavuzfilizlibay)
Üye

SELECT Gecici.MNo, Musteri.MAdi, Musteri.BAdi, SUM (Gecici.FaturaTutar), Gecici.FaturaTarih, Gecici.FNo, Gecici.TahsilatTutar, Gecici.TahsilatTarih, Gecici.GFNo, 


(SELECT CAST(CASE WHENGecici.TahsilatTutar >= Gecici.FaturaTutar THEN 1 ELSE 0 END AS bit)) AS 'Odendi' FROM Gecici GROUP BY Gecici.FNo


 INNER JOIN Musteri ON Gecici.MNo = Musteri.MusteriNo UNION ALL

 Bu şekilde dener misiniz, SUM (Gecici.FaturaTutar), geçici Fatura Tutar ın başına SUM eklendi. GeciciF.No da GROUP BY ile gruplandırıldı.

CevapAlıntı
Gönderildi : 26/11/2013 15:23
emre_ugur
(@emre_ugur)
Üye

Sözdiziminde hata var diyor. (INNER kısmında) 

Sadece aşağıdaki kısmı çözersek union ile diğer tablo ile de birleştirebilirim.

Aktarim.MNo, Musteri.MAdi, Musteri.BAdi, Aktarim.TTutar, Aktarim.FaturaTarih, Aktarim.FNo, Aktarim.YTutar, Aktarim.YTarih, Aktarim.GFNo, (SELECT CAST(CASE WHEN Aktarim.YTutar >= Aktarim.TTutar THEN 1 ELSE 0 END AS bit)) AS 'Odendi' FROM Aktarim INNER JOIN Musteri ON Aktarim.MNo = Musteri.MusteriNo ORDER BY MNo

Burada Fatura numarasına göre nasıl gruplama yapıp aynı fatura numarası olanları tek satıra getirip TTutar kısmına da toplamını yazabilirim.

CevapAlıntı
Konu başlatıcı Gönderildi : 26/11/2013 16:45
oldmember
(@yavuzfilizlibay)
Üye

Aşağıdaki tabloda da, fatura tutara denk gelen alanın başına SUM yazıp (fatura tutar kısmına denk gelen alanı göremedim) GROUP BY Aktarim.FNo gibi olacak

CevapAlıntı
Gönderildi : 26/11/2013 17:57
Paylaş: