Skip to main content

AccessTr.neT


Borçlu Listesi Oluşturma

Borçlu Listesi Oluşturma

#1
Merhaba, birçok yerde arama yaptım ama istediğimi bulamadım. Access konusunda iyi değilim standart komutların ötesine geçemiyorum. müşteri ve hesap adında 2 ayrı tablom var. Kimlik id ile bağlantılı, hesap tablosunda HareketTipi ve Hareket alanları var. HareketTipi alanına BORÇ veya ÖDEME giriliyor. Hareket alanına da işlem tutarı giriyor. Sorgu ile Müşterilerin Hareketlerini gruplayarak toplam borçlarını ve toplam ödemelerini alabiliyorum. Benim istediğim Toplam Borçtan Toplam ödemeyi çıkartarak Kalan Bakiyeyi tek satırda göstertmek. Sizin için kolay olabileceğini düşünüyorum.

İstediğim Tablo;

Müşteri Adı     Müşteri Soyadı      Toplam Borç     Toplam Ödeme       Bakiye     

veritabanını ekte gönderdim. Yardımlarınızı bekliyorum.
.rar Data.rar (Dosya Boyutu: 23,37 KB | İndirme Sayısı: 12)
Cevapla
#2
örneğiniz ektedir inceleyin lütfen (ha bu arada Müşteri adı ve soyadı yerine TCNo gibi kimseye benzemeyen bir ayırıcı deger ile kontrol etmek en iyisi,misal Ali ÇELİK ten iki tane ayrı ayrı müşteri olursa hesap karışacaktır,bunun yerine TCNO kullanınız.) ben şimdilik adı ve soyadına göre ilişkilendirdim bilgin olsun
.rar Celosoft_Data.rar (Dosya Boyutu: 24,72 KB | İndirme Sayısı: 18)
Cevapla
#3
(23/04/2017, 10:45)C*e*l*o*y*c*e yazdı: örneğiniz ektedir inceleyin lütfen (ha bu arada Müşteri adı ve soyadı yerine TCNo gibi kimseye benzemeyen bir ayırıcı deger ile kontrol etmek en iyisi,misal Ali ÇELİK ten iki tane ayrı ayrı müşteri olursa hesap karışacaktır,bunun yerine TCNO kullanınız.) ben şimdilik adı ve soyadına göre ilişkilendirdim bilgin olsun

Çözüm için teşekkürler. Fakat Hiç ödemesi olmayanların isimleri gelmiyor. İlişkilendirmeleri, Kimlik alanlarına göre yaparsam isim soyisim benzerliğinden dolayı sorun olmaz diye düşünüyorum. Peki Hiç ödeme yapmayan veya ödeme yapıpta hiç borcu olmayanları nasıl gösterebilirim listede ?
Cevapla
#4
sayın esmerim33,

EK'te;
bahsettiğiniz talebinize yönelik olarak hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.

NOT
bakiye_srg adlı sorguyu inceleyiniz.

bilginize...iyi çalışmalar,saygılar.
.rar Data-ATOZ.rar (Dosya Boyutu: 19,93 KB | İndirme Sayısı: 11)
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#5
Sayın atoz112 kod için teşekkürler, Access kısmında tam istediğim gibi çalıştı. Sorguyu Delphi xe3'te AdoQuery ile çağırınca NZ komutunu tanımadı. Biraz araştırınca Jet Ole DB Provider'ın NZ fonksiyonunu desteklemediğini öğrendim. NZ kullanmadan yapabilir miyim diye araştırdım. 

SELECT ToplamBorclar.MusteriKimlik, ToplamBorclar.Adi, ToplamBorclar.Soyadi, ToplamBorclar.Cep, Sum(IIf(IsNull(borcum),0, borcum)) AS Toplam_Borc, Sum(IIf(IsNull(odemem),0, odemem)) AS Toplam_Odeme, [Toplam_Borc]-[Toplam_Odeme] AS kalanim
FROM ToplamBorclar LEFT JOIN ToplamOdeme ON ToplamBorclar.MusteriKimlik = ToplamOdeme.MusteriKimlik
GROUP BY ToplamBorclar.MusteriKimlik, ToplamBorclar.Adi, ToplamBorclar.Soyadi, ToplamBorclar.Cep;

Bu şekilde çalıştırdım delphi yine hata verdi Img-cray
Son Düzenleme: 23/04/2017, 18:03, Düzenleyen: esmerim33.
Cevapla
#6
sayın esmerim33,

ToplamBorclar adlı sorgunun içeriğini;

SELECT tblhesap.MusteriKimlik, tblmusteri.Adi, tblmusteri.Soyadi, tblhesap.HareketTipi, Sum(IIf(IsNull([Hareket]),0,[Hareket])) AS borcum
FROM tblmusteri INNER JOIN tblhesap ON tblmusteri.Kimlik = tblhesap.MusteriKimlik
GROUP BY tblhesap.MusteriKimlik, tblmusteri.Adi, tblmusteri.Soyadi, tblhesap.HareketTipi
HAVING (((tblhesap.HareketTipi)="BORÇ"));

ToplamOdeme adlı sorgunun içeriğini;

SELECT tblhesap.MusteriKimlik, tblmusteri.Adi, tblmusteri.Soyadi, tblhesap.HareketTipi, Sum(IIf(IsNull([Hareket]),0,[Hareket])) AS odemem
FROM tblmusteri INNER JOIN tblhesap ON tblmusteri.Kimlik = tblhesap.MusteriKimlik
GROUP BY tblhesap.MusteriKimlik, tblmusteri.Adi, tblmusteri.Soyadi, tblhesap.HareketTipi
HAVING (((tblhesap.HareketTipi)="ÖDEME"));

bakiye_srg adlı sorgunun içeriğini;

SELECT ToplamBorclar.MusteriKimlik, ToplamBorclar.Adi, ToplamBorclar.Soyadi, Sum(ToplamBorclar.borcum) AS Toplam_Borc, Sum(ToplamOdeme.odemem) AS Toplam_Odeme, [Toplam_Borc]-[Toplam_Odeme] AS kalanim
FROM ToplamBorclar LEFT JOIN ToplamOdeme ON ToplamBorclar.MusteriKimlik = ToplamOdeme.MusteriKimlik
GROUP BY ToplamBorclar.MusteriKimlik, ToplamBorclar.Adi, ToplamBorclar.Soyadi;

kodları ile değiştirmek sureti ile kullanmayı deneyiniz.bilginize...iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task