Tablo birleştirme ve Toplam alma (Sum)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Tablo birleştirme ve Toplam alma (Sum)

Mesaj gönderen xozcanx »

Merhaba;
Sabahtan beridir çabalıyorum fakat sonuç alamadım.
3 tabloyu birleştirerek bir alanda toplamı göstermek istiyorum. Şöyleki

Tablo1 : Firma
Alanlar: firmano,Unvan

Tablo2: Fatura
Alanlar: firmano,islemno,ftutar

Tablo3 : odeme
Alanlar: firmano,islemno,otutar

almak istediğim çıktı ise
adi -------------------------- islemno-------------------------- ftutar-------------------------- otutar
xxxxxxxx----------------------- 1001-------------------------- 35.000-------------------------- 30.000
yyyyyyyy----------------------- 1001-------------------------- 17.000-------------------------- 15.000

benim sıkıntı yaşadığım nokta ise işlem numarası fima işlem yaptıkça artıyor her firma için ayrı bir artan alanımız var.
işleme ait tek fatura ve tek ödeme var ise sıkıntı yok fakat 2 fatura var ise burada sıkıntı yaşıyorum.2 faturanın toplamı 30.000 ise 60.000 olarak gösteriyor.

kullandığım kod ise aşağıdaki şekilde.

Kod: Tümünü seç

SELECT
O.firmano,O.isltar,O.tutar,A.adi,SUM (F.ftutar)
From 
odeme O
LEFT JOIN firma A on O.firmano=A.firmano
LEFT JOIN Fatura F on (O.islemno=F.islemno and O.firmano=F.firmano)
GROUP  BY 
O.firmano,O.isltar,O.tutar,A.adi, A.ftutar
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Tablo birleştirme ve Toplam alma (Sum)

Mesaj gönderen Kuri_YJ »

Selamlar,

Aşağıdaki bir dener misiniz.

Kolay Gelsin

Kod: Tümünü seç

SELECT S.FirmaNo, S.Unvan, F.IslemNo, SUM(FTutar) ToplamFatura, SUM(OTutar) ToplamOdeme
FROM Firma S 
	LEFT OUTER JOIN Fatura FT ON S.FirmaNo = FT.FirmaNo
	LEFT OUTER JOIN Odeme O ON S.FirmaNo = O.FirmaNo
GROUP BY S.FirmaNo, S.Unvan, F.IslemNo
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Tablo birleştirme ve Toplam alma (Sum)

Mesaj gönderen xozcanx »

Kuri_YJ yazdı:Selamlar,

Aşağıdaki bir dener misiniz.

Kolay Gelsin

Kod: Tümünü seç

SELECT S.FirmaNo, S.Unvan, F.IslemNo, SUM(FTutar) ToplamFatura, SUM(OTutar) ToplamOdeme
FROM Firma S 
	LEFT OUTER JOIN Fatura FT ON S.FirmaNo = FT.FirmaNo
	LEFT OUTER JOIN Odeme O ON S.FirmaNo = O.FirmaNo
GROUP BY S.FirmaNo, S.Unvan, F.IslemNo
Hocam cevep için teşekkürler. Aşağıdaki sorgu yapısı ile sonuca ulaştım.
Bu defa da farklı bir ihtiyaç oluştu onu karşılayamadım

A (odeme) ve B (fatura) tablosunu firmano ve islemno alanlarına göre karşılaştırmak istiyorum.
A (odeme) tablosunda olan fakat B(fatura) tablosunda olmayan tutarların toplamını almaya çalışıyorum.
fakat bir sonuç alamadım.

Kod: Tümünü seç

Select
 o.isltar,O.ekno,O.firmano,
 (
 SELECT
   SUM( FT.TUTAR )
 FROM
   Fatura FT
 WHERE
   FTfirmano = O.firmano
    and 
   FTislemno = O.islemno
    and 
   FTislemtarihi>='2016-01-01'
    and 
   FTislemtarihi<='2016-01-26'
 ) as FT_TOPLAM,
 O.tutar AS ODEME
FROM
  ODEME O
Where 
  o.isltar>='2016-01-01'
and 
  o.isltar<='2016-01-26'
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Tablo birleştirme ve Toplam alma (Sum)

Mesaj gönderen Kuri_YJ »

Selamlar,

Joinleri doğru kullanırsan istediğini elde edebilirsin. Bak aşağıdaki Linkte JOIN'lerin nasıl kullanıldığı görsel olarak ifade edilmiş. Sen d buna göre hangi JOIN'i kullanman gerektiğini çözebilirsin.

[img]
http://www.mehmetavsar.com/wp-content/u ... joins.jpeg
[/img]

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla