sql 3 tablo ve sum kullanmak istiyorum. çözemedim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ieski
Üye
Mesajlar: 20
Kayıt: 09 Tem 2003 08:19

sql 3 tablo ve sum kullanmak istiyorum. çözemedim

Mesaj gönderen ieski »

S.A. Arkadaşlar,

3 tane tablom var.

FATURA
FATURA_NO
M_NO

FATURA_DETAY
FATURA_NO
KDV
TUTAR

Müşteri
M_NO
xx

şimdi ben bu üç tabloyu bibirine bağlayıp ayrıca kdv ve tutar alanlarını toplamak ve diğer tablolardaki alanlarıda görmek istiyorum ama olmuyor.

selec * , sum(KDV + TUTAR) as Toplam
from FATURA f, FATURA_DETAY fd, MUSTERI m
where f.FATURA_NO = fd.FATURA_NO and f.M_NO = m.M_NO


diye ama çalışmıyor çok fazla araştırdım buna benzer bir şey bulamadım.
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

[/code]SELECT c.urun, c.RENK,c.fiyat,
coalesce((select sum (a.miktar) from sgir a
where a.urun=c.urun and a.renk=c.renk and a.durum=1),0)-
coalesce((select sum (b.miktar) from sgir b
where b.urun=c.urun and b.renk=c.renk and b.durum=0),0)
as Stok_Durumu
from sgir c group by c.urun ,c.renk,c.fiyat

Kod: Tümünü seç

 gibi bir kod işine yararmı acaba 
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Gruplama da select * diye kullanamazsınız. O zaman tüm alanları group by a eklemek gerekir.

Kod: Tümünü seç

selec m_no, fatura_no , sum(KDV + TUTAR) as Toplam
from FATURA f, FATURA_DETAY fd, MUSTERI m
where f.FATURA_NO = fd.FATURA_NO and f.M_NO = m.M_NO
group by m.m_no, f.fatura_no
select te çıkacak alanları group by kısmına eklemeniz gerekir.

Bu arada hangi veritabanı yazmamışsınız :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
mero
Üye
Mesajlar: 109
Kayıt: 04 Mar 2005 04:54

Mesaj gönderen mero »

öncelikle selecten sonraki kısımlarda da aliasları kullan.
f.* , sum(fd.KDV + fd.TUTAR) ve group by ile gruplandırma yapman gerek.
Kullanıcı avatarı
ieski
Üye
Mesajlar: 20
Kayıt: 09 Tem 2003 08:19

Mesaj gönderen ieski »

TEŞEKKÜR EDERİM ÇOK YARDIMCI OLDU BANA GÖNDERDİĞİNİZ MESAJ . ŞÖYLE ÇÖZDÜM

bu arada database firebird 1.5

Kod: Tümünü seç

select f.fatura_no, f.musteri_no, f.fatura_tarihi,
(select sum(KDV + TUTAR) from FATURA_DETAY fd where fd.fatura_no = f.fatura_no) as TPL,
(select m.musteri_adi from MUSTERI m where m.MUSTERI_NO = f.MUSTERI_NO) as MAD
from fatura f group by f.musteri_no , f.fatura_tarihi , f.fatura_no
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Mesajlarda küçük harf kullanalım :!:

gruplanan asıl sorguda olmadığından bu yapıda group by a gerek yok. Yani şu şekilde de çalışması lazım;

Kod: Tümünü seç

select f.fatura_no, f.musteri_no, f.fatura_tarihi,
(select sum(KDV + TUTAR) from FATURA_DETAY fd where fd.fatura_no = f.fatura_no) as TPL,
(select m.musteri_adi from MUSTERI m where m.MUSTERI_NO = f.MUSTERI_NO) as MAD
from fatura f
FATURA tablosunun master tablo olduğunu varsayıyorum :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

left join de kullanabilirsin,
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Cevapla