3 tablo ile group by kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
lom
Üye
Mesajlar: 135
Kayıt: 25 Nis 2006 02:37

3 tablo ile group by kullanımı

Mesaj gönderen lom »

s.a
3 adet tablodan bi çıktı almak istiyorum ancak içinde çıkamadım.

1. tablo
ALINANMALZEMETOPLAMI
ALINANMALZEMETOPLAMI_ID,
KOYLU_ID,
MALZEMETOPLAMI,
ODEMEDURUM

2.tablo
VERILENMALZEMETOPLAMI
VERILENMALZEMETOPLAMI_ID,
KOYLU_ID,
TUTAR,
ODEMEDURUM

2. tablo
KOYLU
KOYLU_ID,
ADSOYAD

Bu tabloları kullanarak şöle bir çıktı almak istiyorum

koyluadsoyad -- verilenmalzemetoplamı-------alınanmalzemetoplamı
ahmet --- 600---------------------------- 300
mehmet --- 800---------------------------- 500

burda verilenmalzemetoplamı ve alınanmalzemetoplamı kısımlar koylulerin aldıkları malzemelerin toplamını yazmaası lazım. ve Şartımda odemedurumu=0 olanlar. yani verilenmalzemetoplamında ve alınanmalzemetoplamı tablolarında odemedurumu 0 olanlar gelecek.

Ben şu şekilde yapmaya çalıştım ama uçuk sonuçlar çıkıyo :)

Kod: Tümünü seç

SELECT 
koylu.adsoyad,
SUM(TUTAR) AS TOPLAMTUTAR,
SUM(KOYLUDENALINANMALZEME.MIKTARI) AS ALINANSUTTOPLAMI,
KOYLUYEVERILENMALZEME.KOYLU_ID
FROM 
KOYLUYEVERILENMALZEME
left JOIN KOYLU ON (KOYLU.KOYLU_ID = KOYLUYEVERILENMALZEME.KOYLU_ID)
LEFT JOIN KOYLUDENALINANMALZEME ON (KOYLUDENALINANMALZEME.KOYLU_ID=KOYLU.KOYLU_ID)
WHERE KOYLUYEVERILENMALZEME.ODEMEDURUM=0 AND KOYLUDENALINANMALZEME.ODEMEDURUM=0
GROUP BY KOYLUYEVERILENMALZEME.KOYLU_ID,koylu.adsoyad
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: 3 tablo ile group by kullanımı

Mesaj gönderen mkysoft »

iç içe sql olarak yazarsanız daha kolay olur:

Kod: Tümünü seç

SELECT
koylu.adsoyad,
(SELECT SUM(TUTAR) FROM KOYLUYEVERILENMALZEME WHERE ODEMEDURUM=0 AND KOYLUYEVERILENMALZEME.KOYLU_ID=KOYLU.KOYLU_ID) AS TOPLAMTUTAR,
(SELECT SUM(MIKTARI) FROM KOYLUDENALINANMALZEME WHERE ODEMEDURUM=0 AND KOYLUDENALINANMALZEME.KOYLU_ID=KOYLU.KOYLU_ID) AS ALINANSUTTOPLAMI
FROM
KOYLU
Cevapla