Bakiye hesaplatma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Bakiye hesaplatma

Mesaj gönderen ertline »

S.A. Arkadaşlar

Kod: Tümünü seç

BORC      ALACAK   BAKIYE
100                          100
50                            150
               100            50
25                             75

şeklinde ki hesabı sql ile nasıl yapabilirim.
"Bilginin Doruğuna Hep Birlikte..."
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

soru biraz eksik olmuş. bu alanları veri tabanında nasıl tuttuğunu bilemediğimizden cevap veremiyoruz.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Bu işlemleri sıralayan illa ki bişey vardır, mesela tarih ya da kayıt numarası.
sen querye şöyle bişey ekle:

Kod: Tümünü seç

select borc, alacak, (select sum(borc-alacak) from tablom t2 where t2.tarih<=t1.tarih) as bakiye, adi, soyadi form tablom t1
ya da

Kod: Tümünü seç

select borc, alacak, (select sum(borc-alacak) from tablom t2 where t2.kayitno<=t1.kayitno) as bakiye, adi, soyadi form tablom t1
kolay gelsin
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
@ertline
soruyu daha açık bir şekilde sorarsan arkadaşların yardım etmesi kolay olur.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

t1 ve t2 ne oluyor burda acaba?
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

t1 ve t2 tablolara verilen kısa isimler. yani tablom1'i t1 diye isimlendirmiş olduk ve

Kod: Tümünü seç

t1.tarih
diye bi kullanım gerçekleştirebildik.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

bende bir tane tablo var cari_hesap diye
cari hesapta bulunan alanlar
kno(pkey)
dno(fkey)(cari nin knosunu atıyorum)
tarih
aciklama
borc
alacak

bunlara göre işlemleri yapıyor
yalnız exrede yazıcı çıktısında ben sadece
borc alacak şeklinde gösteriyorum
fakat borc alacak bakiye şeklinde olamsı istendi

burda 2 tane tabloyu nasıl kullanacağım?
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

bak şimdi, ekstreyi quickreport ta alıyosan çok kolay bi yöntemi var.
detailbandın en sonuda bi tane qrexpression koy.
onun expressionuna

Kod: Tümünü seç

sum(cari_hesap.borc)-sum(cari_hesap.alacak)
yaz olay bitmiştir.
preview yaptığın zaman istediğin olay gerçekleşmiş olacak.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

nitrokonat hocam Allah razı olsun
tam istediğim gibi oldu

kaç gündür bununla uğraşıyorum
Bu kadar kısa olacağı hiç aklıma gelmezdi

Çok tşk. ederim
Hayırlı çalışmalar....
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

sayın ertline bu ekstre raporlama olayında olayı bi ileri boyutu daha var. o sorunla ilerde karşılaşacaksın. kullancı diyecek ki sadece bu ayki işlemlerin ekstresini alayım. dolayısıyla raporuda dönem öncesi bakiye diye bişey daha eklemen gerekecek. mesela programda müşterinin ocak-şubat-mart ve nisan ayında işlemleri var. tarih aralığı belirlemek istiyoruz. yani sadece nisan ayı ekstesini alacağız. dolayısıyla raporun tepesinde dönem öncesi (ocak-şubat-mart) bakiyesi de olmalı tek satır halinde. hazır olayı prfosyonelleştirmişken sen bu ihtimali de göz önünde bulundur. ben de yardım edeyim ilerde bi daha sıkıntı olmasın sana.
kolay gelsin.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

hocam bu o olayın nasıl old. bilmiyorum.
databaseye alan eklemek gerekir mi?
yada kolay bir yolu varsa yapabilirim.
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

sen bana mevcut raporu almak için kullandığın sql kodunu yaz. ben de sana önceki bakiyeyi hesaplayan kodu yazayım kardeş.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Tarih aralığında rapor alırken bunu kullanıyorum

Kod: Tümünü seç

Select cari_kayit.cari_kodu,cari_kayit.tc_kimlik_no,cari_kayit.unvan,cari_kayit.adi,cari_kayit.soyadi,cari_kayit.cari_grubu,cari_kayit.cari_turu,cari_hesap.tarih,cari_hesap.vade_tar,'
+'cari_hesap.aciklama,cari_hesap.memur,cari_hesap.odeme_tipi,cari_hesap.borc,cari_hesap.alacak,cari_hesap.ozel_kod,cari_hesap.islem_turu,cari_hesap.evrak_no from cari_hesap left join cari_kayit on cari_hesap.dno=cari_kayit.kno where tarih between '+#39+datetostr(DAtetimepicker1.Date)+#39+' and '+#39+datetostr(DAtetimepicker2.Date)+#39+'
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Kod: Tümünü seç

Select sum(borc) as devredenborc, sum (alacak) as devredenalacak from cari_hesap left join cari_kayit on cari_hesap.dno=cari_kayit.kno where tarih < '+#39+datetostr(DAtetimepicker1.Date)+#39
bu kodları kullanan ikinci bi query koy formuna.
quickreporta en tepeye de iki tane qrdblabel koy, dblabellardan birini devredenborca diğerini devredenalacak'a bağla. bunların en sağına da bi tane qrexression koy. onun expressionuna da devredenborc-devredenalacak yaz.

detailbanda koyduğun qrexpr'in kodunun başına da (devredenborc-devredenalacak) yaz. böylece detailbanddaki expression

Kod: Tümünü seç

(devredenborc-devredenalacak) + (sum(borc)-sum(alacak))
olsun.
bilmem anlatabildim mi?
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

tamam hocam
uygulayacağım
Tşk. ederim.
Hayırlı çalışmalar...
"Bilginin Doruğuna Hep Birlikte..."
Cevapla