Forum
Merhaba Arkadaşlar.
Aşağıdaki tabloyu şöyle yapmak istiyorum. Tablo adı MUHFIS
Amacım borç alacaktaki 1 ve 2 lerin tutarlarını ayrı ayrı
toplamak. Ama toplamayı yaparken GRUP koduna göre toplamak. Yani sorgumun
sonucunda tablo aşağıdaki gibi olmalı.
Yardımcı olurmusunuz?
BORÇ/ALACAK |
TUTAR |
GRUP |
1 |
1500 |
A |
2 |
23.2 |
A |
1 |
35.5 |
A |
1 |
17.8 |
A |
2 |
11.1 |
A |
2 |
55 |
B |
2 |
27.5 |
B |
1 |
23 |
B |
2 |
28 |
B |
1 |
150 |
B |
1 |
169 |
C |
2 |
278 |
C |
1 |
22 |
C |
1 |
133 |
D |
1 |
215 |
D |
1 |
22 |
D |
2 |
158 |
D |
2 |
98 |
E |
1 |
87 |
E |
2 |
95 |
E |
İSTEDİĞİM HALİ
BA1TOPLAM |
BA2TOPLAM |
GRUP |
1553.3 |
23.2 |
A |
173 |
110.5 |
B |
191 |
278 |
C |
370 |
158 |
D |
87 |
193 |
E |
SELECT SUM(TUTAR) FROM MUHFIS WHERE GRUP = 'A' AND ALACAK = '1'SELECT SUM(TUTAR) FROM MUHFIS WHERE GRUP = 'A' AND ALACAK = '2'veyaSELECT SUM(TUTAR) AS BA1TOPLAM FROM MUHFIS WHERE GRUP = 'A' AND ALACAK = '1'SELECT SUM(TUTAR) AS BA2TOPLAM FROM MUHFIS WHERE GRUP = 'A' AND ALACAK = '2'yadaSET @BA1TOPLAM = (SELECT SUM(TUTAR) FROM MUHFIS WHERE GRUP = 'A' AND ALACAK = '1')SET @BA2TOPLAM = (SELECT SUM(TUTAR) FROM MUHFIS WHERE GRUP = 'A' AND ALACAK = '2')
Merhaba Savaş Bey.
Cevap için teşekkürler fakat Grup isimleri 3-4 adet değil. Binlerce.
Benim sorguda grup adı aynı olanları şeklinde yapmam gerek.
bence bu işlemi sağa doğru columns ler ile değilde row mantığında yapmanız daha doğru olur eğerki odeme turleri 2 adet ise farklı bir kodda verebilirim
SELECT
odemeturu, grup, SUM(tutar) as tutar
FROM
test
GROUP BY grup, odemeturu
ORDER BY grup
Merhaba Kenan Bey.
Sorgu bu şekilde de işime yaramıyor. Böyle yaptığımda Grup A olan 2 satırda karşıma geliyor. 2 Ayrı sütunda yapmalıyım. Çünkü Bir sonraki aşamada Yeni sütuna BA1TOPLAM-BA2TOPLAM değerini yazdıracağım.
Kenan Bey.
Raporu aldım fakat şöyle bir durum var.
Alacak_ToplamTutar odemeturu 1 ve 2 nin toplamı olmuş.
Borc_ToplamTutar ise Alacak_ToplamTurar'ın 2 katı olmuş.
Pardon
SELECT
T.grup,
(SELECT SUM(tutar) AS tutar FROM test WHERE grup = T.grup AND odemeturu = 1) AS Borc_ToplamTutar,
(SELECT SUM(tutar) AS tutar FROM test WHERE grup = T.grup AND odemeturu = 2) AS Alacak_ToplamTutar
FROM
test T
GROUP BY T.grup
Aslında datalarınızdan daha açıklayıcı örnekler olsaydı daha iyi olurdu herneyse bu şekilde sorununuz büyük ihtimalle çözülecektir. İyi çalışmalar
Kenan Bey ilginiz için çok teşekkür ederim.
Şuan istediğim gibi veriyor.
Çok teşekkür ederim tekrar.
Merhaba Özgür Bey,Merhaba Savaş Bey.
Cevap için teşekkürler fakat Grup isimleri 3-4 adet değil. Binlerce.
Benim sorguda grup adı aynı olanları şeklinde yapmam gerek.
Sorgunun grup bazlı olması gerektiği dikkatimden kaçmış. Tablodaki verilere bakınca proje ödevi gibi bir şey sanmıştım 🙂
Kolay gelsin, iyi çalışmalar.