Delphi DBGRİD kümilatif toplam

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Delphi DBGRİD kümilatif toplam

Mesaj gönderen erkan1525 »

Merhaba
Delphide nasıl kümilatif toplam yapabilirim?
Örnek

Borç Alacak Küm.Toplam
0 100 100
0 200 300
50 0 250
900 0 -650
0 150 -500
Senat0r
Üye
Mesajlar: 80
Kayıt: 13 Tem 2014 09:30
Konum: Antalya

Re: Delphi DBGRİD kümilatif toplam

Mesaj gönderen Senat0r »

Bence işlemi dbgrid ile değilde sql ile yaparsanız daha iyi performans alırsınız örnek olarakda

Kod: Tümünü seç

SELECT t2.tarih,
         t2.Borc,t2.Alacak,
         (
            SELECT SUM(t1.Alacak)-SUM(t1.Borc) FROM AylikGelir t1
            WHERE t1.tarih <= t2.tarih
         ) AS KumulatifToplam
    FROM AylikGelir t2
ORDER BY t2.tarih
Şeklinde basit bir sql cümlesi yazılabilir.
gideceği limanı bilmeyen gemiye hiçbir rüzgar yardım edemez...

Kod: Tümünü seç

Delete from hayat where cins="çıkarcılar"
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Re: Delphi DBGRİD kümilatif toplam

Mesaj gönderen erkan1525 »

Sizden bakarak birazda düzeltmeyle olayı çözdüm ama çok kalabalık bir programım bir sürü sorgu var şimdi nasıl uyarlama yapacağımı kara kara düşünüyorum. Böyle şeylerin pratik bir yolunu biliyormöusunuz acabe?

çalışan kod:

Kod: Tümünü seç

SELECT 
	t1.id, 
	t1.CariId, 
	t1.Tarih, 
	t1.Vade, 
	t1.Borc, 
	t1.Alacak,
	(
		SELECT SUM(t2.alacak)-SUM(t2.borc) FROM cari_hareket as t2 WHERE (t2.Tarih<t1.Tarih or t2.id=t1.id) and t2.CariId=9
	) as kbakiye
FROM cari_hareket AS t1 WHERE t1.CariId=9 ORDER BY t1.tarih ASC;
En son erkan1525 tarafından 03 Eki 2014 11:23 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Senat0r
Üye
Mesajlar: 80
Kayıt: 13 Tem 2014 09:30
Konum: Antalya

Re: Delphi DBGRİD kümilatif toplam

Mesaj gönderen Senat0r »

Sql cumleleri cok ufak tefek farkliliklar gostersede kalibi aynidir. Evet bu kod accessde calisir sorun yasamazsiniz t1 ve t2 tabloya verdigim isimlerdir
select * from caristokhareket a seklinde yazdigimiz zaman caristokhareket yerine artik a ifadesini kullanabiliriz yani baska inner join gibi ifadelerde caristokhareket.id yerine a.id dedigimiz zaman yeterli olacaktir umarim anlatabilmisimdir takilirsaniz tekrar sorabilirsiniz.
gideceği limanı bilmeyen gemiye hiçbir rüzgar yardım edemez...

Kod: Tümünü seç

Delete from hayat where cins="çıkarcılar"
erkan1525
Üye
Mesajlar: 113
Kayıt: 12 Ağu 2014 01:31

Re: Delphi DBGRİD kümilatif toplam

Mesaj gönderen erkan1525 »

Ben derinlemesine incelemeden cevap verdiydim sonra incelemeye başladım. kimse görmeden bir uygulayıp cevabı değiştireyim derken siz çok hızlı çıktınız.
Sizden bakarak birazda düzeltmeyle olayı çözdüm ama çok kalabalık bir programım bir sürü sorgu var şimdi nasıl uyarlama yapacağımı kara kara düşünüyorum. Böyle şeylerin pratik bir yolunu biliyormöusunuz acabe?

çalışan kod:

Kod: Tümünü seç

SELECT 
	t1.id, 
	t1.CariId, 
	t1.Tarih, 
	t1.Vade, 
	t1.Borc, 
	t1.Alacak,
	(
		SELECT SUM(t2.alacak)-SUM(t2.borc) FROM cari_hareket as t2 WHERE (t2.Tarih<t1.Tarih or t2.id=t1.id) and t2.CariId=9
	) as kbakiye
FROM cari_hareket AS t1 WHERE t1.CariId=9 ORDER BY t1.tarih ASC;
Senat0r
Üye
Mesajlar: 80
Kayıt: 13 Tem 2014 09:30
Konum: Antalya

Re: Delphi DBGRİD kümilatif toplam

Mesaj gönderen Senat0r »

Kolay diyemem amam en pratik yolu stored procedure uygulamaktir ordan direk sorguyu cagirirsiniz ve hizlanmis olur bir arastirin isterseniz.
gideceği limanı bilmeyen gemiye hiçbir rüzgar yardım edemez...

Kod: Tümünü seç

Delete from hayat where cins="çıkarcılar"
Cevapla