borc-alacak-bakiye sql ile nasıl hesap?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

borc-alacak-bakiye sql ile nasıl hesap?

Mesaj gönderen poke53280 »

adi borc alacak bakiye
satış 150 65 85
tahsilat 35 50
tahsilat 50 0;

bu işlemi sql ile yapabilir miyim.
select borc, alacak, borc-alacak+ [önceki bakiye?] as bakiye

nasıl olacak.
bakiye adlı değişken yapıp, on calculate ile oluyor ama gride kayıt ekleyince olaylar bozuluyor..
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Re: borc-alacak-bakiye sql ile nasıl hesap?

Mesaj gönderen csyasar »

poke53280 yazdı:adi borc alacak bakiye
satış 150 65 85
tahsilat 35 50
tahsilat 50 0;

bu işlemi sql ile yapabilir miyim.
select borc, alacak, borc-alacak+ [önceki bakiye?] as bakiye

nasıl olacak.
bakiye adlı değişken yapıp, on calculate ile oluyor ama gride kayıt ekleyince olaylar bozuluyor..
sql'le neden yapmaya çalışıyosun. toplama çıkarma yaptırıp değerleri database'e atsan daha kolay/kullanışlı olmaz mı? bence standart toplama çıkarma işlemiyle yaparsan daha hoş olur.

Örnek kullanım:

Kod: Tümünü seç

Query1.fileldbyname('Bakiye').asinteger:=Query1.fileldbyname('Toplam_Borc').asinteger - Query1.fileldbyname('Alinan').asinteger;
gibi....
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Re: borc-alacak-bakiye sql ile nasıl hesap?

Mesaj gönderen Salih »

poke53280 yazdı:adi borc alacak bakiye
satış 150 65 85
tahsilat 35 50
tahsilat 50 0;
Olayı doğru anladıysam, Sen bir takım borc alacak ve bakiye rakamlarını Grid içinde görüntülemek istiyorsun. Ve örnekten anladığım tek tablo içinde tutuyorsun bu kayıtları ve bu yanlış. Örneğin bu bir cari hesap işi ise
Hesaplar tablosu : musteri_no,Musteri_adı, Borc_toplam, Alacak_toplam
Satışlar : musteri_no, satış cinsi vs vs, satis_tutari
Tahsilat : Musteri_no, makbuz_no,......, tahsilat_tutari
şeklinde üç tablo tutman lazım.

Satış ve tahsilat yapıldıkça hesaplar tablosundaki borc-alacak alanlarını trigger ve SP ler yardımıyla otomatik olarak update ettirirsin.

Belki de ben senin örneğini yanlış algıladım, o zaman bu mesajımı çöpe atarsın !
Sevgi, Saygı.....
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

Tekrar açıklayayım..

Mesaj gönderen poke53280 »

Teşekkürler ama ben anlatamadım galiba.
_mesela işlemler tablosunda;
musteri_no, islem_tipi, borc, alacak, birde calculate alan olarak bakiye olsun. bky ise tanımlanmış bir double;
Query1'in oncalculate alanına

Kod: Tümünü seç

begin
query1Bakiye.asFloat:= query1Borc.asfloat + query1Alacak.asFloat+Bky;
bky:= query1bakiye.asfloat;
end;
olunca, gridden kayıt gireceğim zaman bakiye alanı sürekli üstüne koyuyor. datasource1'in onchange olayında bky:=0 yaptım.olmadı.
sql ile yapabileceksem bunu bilmeliyim.

SELECT Musteri_No, Islem_Tipi, Borc, Alacak, (Borc-Alacak)+Burayakadarki Bakiye as Bakiye from islemler şeklinde yapabilmeliyim.
yani n kayıtına kadar olan bakiyeyi böyle bir select cümlesinde yapabilir miyim merak ediyorum. Söylece sql çalışınca select ile görüntülenecek her borc ve alacaktan sonra buraya kadar olan bakiyeyi alıp sum(borc)-sum(alacak)'a ekleyebilmeliyim.
Ya eski Clipper programlarındaki gibi otomatik bakiye almaya çalışıyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
on calc field olayında borç ve alacak alanlarını kontrol ettirip alanlar boşsa calc alanı hesaplatmazsanı işlem olur kanısındayım.

diğer türlü toplayarak gelmesi için eğer kullandığınız vt sp leri destekliyor ise sp kullanarak halledilebilir.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
doganzorlu
Kıdemli Üye
Mesajlar: 395
Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:

Mesaj gönderen doganzorlu »

Selam,

Kod: Tümünü seç

SELECT MUSTERI,ITIPI,BORC,ALACAK,
(SELECT SUM(BORC-ALACAK) FROM BAKIYE b WHERE b.islem_tarihi < a.islem_tarihi)
FROM BAKIYE a

Sonuçlar;

MUSTERI ITIPI BORC ALACAK BAKIYE  
----------------------------------
1       1     10   0              
1       1     0    20     10      
1       1     0    20     -10     

şeklinde yapabilirsiniz. Ben öncelik/sonralık bilgisi için islem_tarihi diye bir kolon uydurdum siz kendinize göre düzenlersiniz.

Kolay gelsin,
Doğan Zorlu, İzmir

------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
poke53280
Üye
Mesajlar: 25
Kayıt: 23 Haz 2004 02:56
Konum: TOKAT

Teşekkürler

Mesaj gönderen poke53280 »

Tamamdır.
Hepinize teşekkürler.
Kolay gelsin.
Cevapla