Skip to main content

AccessTr.neT


Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi

Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi

#5
SELECT k.ID,k.MusteriKod,k.MusteriAdi,k.Telefon,k.Giris,k.Cikis,k.Bakiye,
Nz((SELECT SUM(s.Tutar) FROM tbl_Sales AS s WHERE s.MusteriKod = k.MusteriKod),0) AS ToplaTutar,
Nz((SELECT SUM(c.Tutar) FROM tbl_CasheMoves AS c WHERE c.CariKod = k.MusteriKod),0) AS NakitTahsilat
FROM qry_BankCustom AS k;
yapmak istediğiniz sorgu. Şöyle açıklayayım:
qry_BankCustom ana kaynağınız, AS k ile ona kısa bir isim vermek pratiklik için, alanlara erişmek için k.ilgili alan yazmak kaynak tablo adını uzun uzun yazmaktan daha kolaydır. Buna göre qry_BankCustom içindeki her müşteri için bir satır döner. NZ alt sorgusu kısmında ise tbl_Sales tablosundan k.MusteriKod ile eşleşen kayıtlar için Tutar toplamını (SUM) alıyoruz çünkü WHERE s.MusteriKod = k.MusteriKod ana kaynağın k.MusteriKod değerine bağımlı. Buna korelasyonlu alt sorgu denir. Mantık olarak x müşterisi için tbl_Salesdeki toplam satış tutarı nedir sorusunu cevaplar.
Şayet Excele export etmek gibi işlemler uygulayacaksanız bu durumda NZ alt sorgularını
IIf(IsNull((SELECT SUM(s.Tutar) FROM tbl_Sales AS s WHERE s.MusteriKod = k.MusteriKod)), 0, (SELECT SUM(s.Tutar) FROM tbl_Sales AS s WHERE s.MusteriKod = k.MusteriKod)) AS ToplaTutar,
IIf(IsNull((SELECT SUM(c.Tutar) FROM tbl_CasheMoves AS c WHERE c.CariKod = k.MusteriKod)), 0, (SELECT SUM(c.Tutar) FROM tbl_CasheMoves AS c WHERE c.CariKod = k.MusteriKod)) AS NakitTahsilat
IFF yapısına dönüştürmek gerekir.

Sorgulara daha çok çalışmalısınız. Hala mantık hataları yapıyorsunuz, bu moralinizi bozmasın öğrenme aşamasında hata yapmak normaldir ve hata yapmak pratik olarak öğrenmenizi sağlar.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Re: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - Yazar: atoykan - Dün, 10:32
Task