Arkadaşlar, Access'de detay tabloların dışında uc adet onemli tablom var. musteri, odemeler, isler tabloları. ben [delphi] rave'de sadece borcu olan muşterileri vermek icin bunu tek sql'de bitirmek istiyorum.

butun muşterilerim bayi kodları ile alış-veriş yaptıkları bayilere bağlılar.

musteri tablosunda muşterilerin bilgileri var.

odemeler de musterinin yaptığı odemeler.

isler ise biraz karışık.

isler tablosunda alış, alış iade, satış, satış iade değerlerini alabilecek bir bolum var. ben buradan satış olanların sip_tutar bolumlerini borc olarak alıp satış iade olanlar ile de odemeleri toplayıp borclu olanları cıkartmak istiyorum.

yani odeme, satın alma ve iade etme durumlarından kaynaklanan para durumlarını toplayım bakiye cıkartmayı ve bakiyesi eksi durumda olanları raporlamak istiyorum.

muşahhas bir misal uzerinden gidecek olursak:

işler tablosundaki işlem turu "Satış" olan kayıtların sip_tutar2 bolumleri BORC olarak toplanacak. mesela bir muşteri 15.05.2010 tarihinde 1.000, 22.05.2010 tarihinde de 6.000 TL lik mal alımı yapmış olsun. muşterimizin borcu 7.000 TL dir.

yine işler tablosunda işlem turu "Satış İade" olan kayıtların sip_tutar2 bolumleri IADE olarak toplanacak. muşterimiz 06.01.2010 tarihinde 500 TL, 10.06.2010 tarihinde de 250 TL lik iade de bulunsun. toplam IADE tutarımız 750 TL olacaktır.

odemeler tablosuna gelince burada yine bayi kodu, musteri kodu bolumleri var ve diğer tablolardaki gibi odemenin hangi muşteri tarafında hangi bayiye yapıldığını anlıyoruz. buradaki odeme_tutar kısımlarını da ODEMETOP olarak topluyoruz. yine aynı muşterimiz 01.07.2010 tarihinde 3.000 ve 10.07.2010 tarihinde de 500 TL odeme yapmış olsun. ODEMETOP 3.500 TL olacak.

hesapladığımız bu uc değeri toplayıp cıkararak BAKIYE değerine ulaşıyoruz. BAKIYE = ODEMETOP+IADE-BORC. orneğimizde BAKIYE = 3500+750-7000. yani BAKIYE = -2750. yani muşterimiz borclu. BAKIYE >= 0 olan muşterileri getirmek istiyoruz.