Yorumları: 116
Konuları: 21
Kayıt Tarihi: 01-09-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 78 Başlangıç
Arkadaşlar merhaba;
Bir türlü beceremediğim bir şeye çare arıyorum, YÜRÜYEN BAKİYE
Benim 5 tablom var.
1- tbl_cari (cr_id, cr_unvan)
2- tbl_tahsilat (th_id, th_crid, th_tarih, th_tutar)
3- tbl_odeme (od_id, od_crid, od_tarih, od_tutar)
4- tbl_satis (sts_id, sts_crid, sts_tarih, sts_tutar)
5- tbl_alis (als_id, als_crid, als_tarih, als_tutar)
Bu tablolardan bir view oluşturup bakiyeyi satır satır görmek istiyorum. boreas'ın bu konuyla ilgili bir başlığı var (başka bir sürü daha) ama çok acemi olmamama rağmen bir türlü doğru sonuç verdiremedim. Her defasında ya korelasyon yaparak sonuç veriyor 5-6 bin kayıt 10-12 milyon olarak dönüyor ya da saçma sapan bir sürü kayıt oluşuyor.
Ufacık bir örnek program verebilecek olana minnettar olacağım.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
Yorumları: 669
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
Selamlar,
Kullanmış olduğunuz SQL kodunu da paylaşabilir misiniz?
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 75
Konuları: 5
Kayıt Tarihi: 03-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 370 Acemi
10-09-2019, Saat: 12:19
(Son Düzenleme: 10-09-2019, Saat: 12:25, Düzenleyen: faktoral.)
MySql de kullandığım bir örnek. Kendinize göre düzenleyin. Bu bir tek tablo üzerinden yapılmıştır.
sqlStr:='SET @stl=0; '+
'SELECT *, concat(Format(kasahrk_tutar,2),'+QuotedStr(' ')+',kasahrk_dovizturu) as GENELTOPLAM,'+
'if(kasahrk_turu='+QuotedStr('Giren')+',kasahrk_tutar*kasahrk_doviz,0) AS GenelIn,'+
'if(kasahrk_turu='+QuotedStr('Cikan')+',kasahrk_tutar*kasahrk_doviz,0) AS GenelOut,'+
'CAST(@stl:=(@stl+if(kasahrk_turu='+QuotedStr('Giren')+',kasahrk_tutar*kasahrk_doviz,-kasahrk_tutar*kasahrk_doviz)) AS DECIMAL(11,2)) AS Bakiye,'+
'if(kasahrk_turu='+QuotedStr('Giren')+' and kasahrk_dovizturu='+QuotedStr('TL')+',kasahrk_tutar,0) AS TLIn,'+
'if(kasahrk_turu='+QuotedStr('Cikan')+' and kasahrk_dovizturu='+QuotedStr('TL')+',kasahrk_tutar,0) AS TLOut '+
'FROM kasahrk ';
Buda Dövizli başka bir örnek
SET @stl=0; SET @usd=0;SET @eur=0;
SELECT *,
CAST(@stl:=(@stl+if(amount_type='Borc',if(currency='TL',total,0),if(currency='TL',-total,0))) AS DECIMAL(11,2)) AS TLBakiye,
CAST(@usd:=(@usd+if(amount_type='Borc',if(currency='USD',total,0),if(currency='USD',-total,0))) AS DECIMAL(11,2)) AS USDBakiye,
CAST(@eur:=(@eur+if(amount_type='Borc',if(currency='EUR',total,0),if(currency='EUR',-total,0))) AS DECIMAL(11,2)) AS EURBakiye
FROM inoutaccounts
Yorumları: 902
Konuları: 68
Kayıt Tarihi: 30-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 8.392 Üstad
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
Yorumları: 116
Konuları: 21
Kayıt Tarihi: 01-09-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 78 Başlangıç
10-09-2019, Saat: 14:11
(Son Düzenleme: 10-09-2019, Saat: 14:13, Düzenleyen: TescilsizUzman.)
(10-09-2019, Saat: 12:12)wiseman Adlı Kullanıcıdan Alıntı: Selamlar,
Kullanmış olduğunuz SQL kodunu da paylaşabilir misiniz?
CREATE VIEW YURUYEN(
CARI,
ALISCRID,
TARIH,
TUTAR,
ODCRID,
ODEMETARIH,
ODENEN,
THCRID,
TAHSILATTARIH,
TAHSILAT)
AS
select tbl_cari.cr_id,
TBL_ALIS.als_crid,
TBL_ALIS.als_tarih,
TBL_ALIS.als_tutar,
tbl_odeme.od_crid,
tbl_odeme.od_tarih,
tbl_odeme.od_tutar,
tbl_tahsilat.th_crid,
tbl_tahsilat.th_tarih,
tbl_tahsilat.th_tutar
from tbl_cari, TBL_ALIS, tbl_odeme, tbl_tahsilat
/*inner join TBL_ALIS on TBL_ALIS.als_crid = tbl_cari.cr_id
join tbl_tahsilat on tbl_tahsilat.th_crid=tbl_cari.cr_id
join tbl_odeme on tbl_odeme.od_crid=tbl_cari.cr_id*/
;
Görüntü aşağıdaki gibi
Bunu yaptım aldığım sonuç doğru değildi daha sonra
CREATE VIEW YURUYEN1(cariid, odcariid, odtarih, odtutar, thtarih, thtutar)
AS
select c.cr_id, o.od_crid, o.od_tarih, o.od_tutar, t.th_tarih, t.th_tutar
from tbl_cari c, tbl_tahsilat t
JOIN tbl_odeme o ON C.cr_id=o.od_crid
where o.od_tarih = t.th_tarih and C.cr_id=o.od_crid
order by o.od_tarih, c.cr_id
;
alınan görüntü bu
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
Yorumları: 820
Konuları: 135
Kayıt Tarihi: 07-12-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.030 Uzman
@ Aktolgali Zamanında SQL için bişeyler karalamıştım beliki fikir verebilir
http://www.delphican.com/showthread.php?...C3%BClatif
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz.
Yorumları: 116
Konuları: 21
Kayıt Tarihi: 01-09-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 78 Başlangıç
(10-09-2019, Saat: 15:07)adelphiforumz Adlı Kullanıcıdan Alıntı: @Aktolgali Zamanında SQL için bişeyler karalamıştım beliki fikir verebilir
http://www.delphican.com/showthread.php?...C3%BClatif
adelphiforumz Teşekkür ederim ama olayın mantığını hâlâ çözemedim dolayısıyla kodda bir işime yaramıyor. Küçükte ola bir program istememin sebebi bu.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
Yorumları: 902
Konuları: 68
Kayıt Tarihi: 30-06-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 8.392 Üstad
(10-09-2019, Saat: 14:01)uparlayan Adlı Kullanıcıdan Alıntı: Aşağıdaki konuyu incelemenizi öneririm;
http://www.delphican.com/showthread.php?tid=2078
(10-09-2019, Saat: 21:44)Aktolgali Adlı Kullanıcıdan Alıntı: (10-09-2019, Saat: 15:07)adelphiforumz Adlı Kullanıcıdan Alıntı: @Aktolgali Zamanında SQL için bişeyler karalamıştım beliki fikir verebilir
http://www.delphican.com/showthread.php?...C3%BClatif
adelphiforumz Teşekkür ederim ama olayın mantığını hâlâ çözemedim dolayısıyla kodda bir işime yaramıyor. Küçükte ola bir program istememin sebebi bu.
@ Aktolgali Yukarıdaki paylaşımda zaten olayın mantığı anlatılıyor. Siz okumaktan imtina ediyorsanız soru sormanızın da bir anlamı yok.
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
Yorumları: 486
Konuları: 63
Kayıt Tarihi: 14-06-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi XE
- Lazarus / FPC
Rep Puanı: 1.599 Programcı
(10-09-2019, Saat: 21:50)uparlayan Adlı Kullanıcıdan Alıntı: (10-09-2019, Saat: 14:01)uparlayan Adlı Kullanıcıdan Alıntı: Aşağıdaki konuyu incelemenizi öneririm;
http://www.delphican.com/showthread.php?tid=2078
(10-09-2019, Saat: 21:44)Aktolgali Adlı Kullanıcıdan Alıntı: adelphiforumz Teşekkür ederim ama olayın mantığını hâlâ çözemedim dolayısıyla kodda bir işime yaramıyor. Küçükte ola bir program istememin sebebi bu.
@Aktolgali Yukarıdaki paylaşımda zaten olayın mantığı anlatılıyor. Siz okumaktan imtina ediyorsanız soru sormanızın da bir anlamı yok.
Kendi kullandığım kod;
#bky değişkeni sorgudan önce sıfırlanmalı.
https://www.ucuzkitapal.com/delphi-2007-...ayincilik/
bu kitabı bulurda alırsan mantığınıda anlarsın.
SELECT
ID,
KAYIT_NO,
BORC,ALACAK,CARI_GENEL.KOD,musteri.firma,iddoviz,CARI_GENEL.islem_tarihi, CARI_GENEL.ACIKLAMA,
(EXTRACT (DAY from TARIH) || '.' ||
EXTRACT (month from TARIH) || '.' ||
EXTRACT (year from TARIH) ) TARIH,
CAST(rdb$get_context( 'USER_TRANSACTION', 'bky#')AS NUMERIC(10,2) ) as ROW_NUMBER,
rdb$set_context('USER_TRANSACTION','bky#' ,
coalesce(cast(rdb$get_context('USER_TRANSACTION' , 'bky#') AS NUMERIC(10,2)), 0) + BORC - ALACAK)
from
CARI_GENEL
left join musteri on (musteri.KOD = CARI_GENEL.kod)
ORDER BY CARI_GENEL.TARIH
Topluluk mopluluk yok :/
Yorumları: 116
Konuları: 21
Kayıt Tarihi: 01-09-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 78 Başlangıç
10-09-2019, Saat: 22:06
(Son Düzenleme: 10-09-2019, Saat: 23:02, Düzenleyen: Aktolgali.)
(10-09-2019, Saat: 21:50)uparlayan Adlı Kullanıcıdan Alıntı: (10-09-2019, Saat: 14:01)uparlayan Adlı Kullanıcıdan Alıntı: Aşağıdaki konuyu incelemenizi öneririm;
http://www.delphican.com/showthread.php?tid=2078
(10-09-2019, Saat: 21:44)Aktolgali Adlı Kullanıcıdan Alıntı: adelphiforumz Teşekkür ederim ama olayın mantığını hâlâ çözemedim dolayısıyla kodda bir işime yaramıyor. Küçükte ola bir program istememin sebebi bu.
@Aktolgali Yukarıdaki paylaşımda zaten olayın mantığı anlatılıyor. Siz okumaktan imtina ediyorsanız soru sormanızın da bir anlamı yok.
uparlayan yukarıda olayın mantığının anlatıldığını görüyorum da siz benim dediğimi anlamamışsınız demekki, dediğim şu "ben hâlâ anlayamadım, çözemedim" dedim. Bunun okumaktan imtinayla ilgisi yok.
Siz okuduğunuz herşeyi bir defa da kavrıyor olabilirsiniz ama bu dünya da benim gibi bir örnekle, beş örnekle kavrayamayan insanlar olduğunu da kabul etmelisiniz. Yine de ilginiz için teşekkür ederim. Sizin cevap vermenize gerek yok.
(10-09-2019, Saat: 22:01)boreas Adlı Kullanıcıdan Alıntı: (10-09-2019, Saat: 21:50)uparlayan Adlı Kullanıcıdan Alıntı: @Aktolgali Yukarıdaki paylaşımda zaten olayın mantığı anlatılıyor. Siz okumaktan imtina ediyorsanız soru sormanızın da bir anlamı yok.
Kendi kullandığım kod;
#bky değişkeni sorgudan önce sıfırlanmalı.
https://www.ucuzkitapal.com/delphi-2007-...ayincilik/
bu kitabı bulurda alırsan mantığınıda anlarsın.
SELECT
ID,
KAYIT_NO,
BORC,ALACAK,CARI_GENEL.KOD,musteri.firma,iddoviz,CARI_GENEL.islem_tarihi, CARI_GENEL.ACIKLAMA,
(EXTRACT (DAY from TARIH) || '.' ||
EXTRACT (month from TARIH) || '.' ||
EXTRACT (year from TARIH) ) TARIH,
CAST(rdb$get_context( 'USER_TRANSACTION', 'bky#')AS NUMERIC(10,2) ) as ROW_NUMBER,
rdb$set_context('USER_TRANSACTION','bky#' ,
coalesce(cast(rdb$get_context('USER_TRANSACTION' , 'bky#') AS NUMERIC(10,2)), 0) + BORC - ALACAK)
from
CARI_GENEL
left join musteri on (musteri.KOD = CARI_GENEL.kod)
ORDER BY CARI_GENEL.TARIH
teşekkür ederim boreas hemen kitabı temin edeceğim.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk
Eyvallah..
|