3 lü master detail de toplam alma

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

3 lü master detail de toplam alma

Mesaj gönderen alakel »

s.a. herkese iyi çalışmalar. bir konu üzerinde takıldım kaldım. yardımcı olursanız sevinirim.

1. tablom şahıs bilgileri, buna bağlı (alanlar, sahis_id, adı, soyadı, adresi, telefon, borc, odeme, kalan vb)
2. tablom yıl bilgileri ve yıl a bağlı (alanlar, yil_id, sahis_id, tarih)
3. tablom taksit bilgileri (taksit_id,yil_id, ödeme tarihi, taksit_tutari, odeme_tutari, kalan vs)

bir procedure yazıp şahsın tüm yıllara ait (2006+2007+2008....) taksit tablosundaki taksit tutar toplamını, odeme toplamını ve kalan toplamını şahıs tablosundaki borc, odeme ve kalan alanlarına yazdırmak.

şöyle bir procedure yazdım ama oda ilk yılın toplamını alıp şahıs tablosuna yazıyor. (örneğin 2006)

begin
select sum(taksit_tutari), sum(odeme_tutari) from taksit
where yil_id =:gelen
into toplam_tutar,:toplam_odeme;
if (toplam_tutar is null) then toplam_tutar=0;
if (toplam_odeme is null) then toplam_odeme=0;

update sahis set
borc=:toplam_tutar,
odeme=:toplam_odeme,
kalan=:toplam_tutar-:toplam_odeme
where sahis_id=:gelen;
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: 3 lü master detail de toplam alma

Mesaj gönderen White Rose »

aks
Sen zaten yılı parametre olarak procedure'e göndermişsin.
O zaman yıl ne ise toplamlar da o yıla göre olacaktır.
Parametre göndermeden group komutu kullanarak yıllara göre toplamları ayrı ayrı alabilirsin.
O zaman da select komutunu for içine almalısın.
Kolay gelsin.
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

Re: 3 lü master detail de toplam alma

Mesaj gönderen alakel »

sorunu şöyle çzödüm önce taksit içi procedure yazdım yıl tablosuna kaydettim. sonra yıl için procedure yazdım onu şahıs tablosuna kaydettim olay çzöüldü. tşk ler
Cevapla