![]() |
Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Soruları ve Cevapları (https://accesstr.net/forum-access-sorulari-ve-cevaplari.html) +--- Konu Başlığı: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi (/konu-sorguda-toplam-degerinin-4-kati-olarak-gelmesi.html) |
Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - truhi - 05/10/2025 Kıymetli Hocalarım Merhabalar Ekli DB' de yer alan "qry_Customers" sorgusunda IIf(IsNull(Sum(tbl_CasheMoves.Tutar)),0,Sum(tbl_CasheMoves.Tutar)) AS NakitGiris satırında toplam değer 1440 olması gerekirken; 1440*4= 5760 sonucunu üretmektedir. yardımcı olursanız çok sevinirim, Kod:
SELECT qry_BankCustom.ID, qry_BankCustom.MusteriKod, qry_BankCustom.MusteriAdi, qry_BankCustom.Telefon, qry_BankCustom.Giris, qry_BankCustom.Cikis, qry_BankCustom.Bakiye, IIf(IsNull(Sum(tbl_Sales.Tutar)),0,Sum(tbl_Sales.Tutar)) AS ToplaTutar, SUM(tbl_CasheMoves.Tutar) AS NakitTahsilat iyi pazarlar dilerim. RE: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - atoykan - 05/10/2025 Toplamları bankcustom ile Left joinden önce sorgulamalısınız aksi takdirde bahsettiğiniz çarpan etkisi karşınıza çıkar. Müşterinin tblsales tablosunda x, tblcashemoves tablosunda y kadar kaydı varsa bankcustom üzerinden join ile birleştirdiğinizde o müşteri için x*y kadar kayıt oluşur ve bunun üzerinden SUM işlemi yaparsanız kayıtlar tekrarlandığı için tutarlar birden çok kez hesaplamaya dahil edilmiş olur. O nedenle joinden önce her iki tabloda sorguyla toplam alıp müşteri bazında gruplamalı sonra join ile bankcustomla birleştirme yapmanız gerek. Buna göre çalışın olmaz ise toplantı çıkışında örneğinizi indirip yardımcı olmaya çalışırım başka hata var mı bakarak. RE: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - truhi - 05/10/2025 (05/10/2025, 18:51)atoykan yazdı: Toplamları bankcustom ile Left joinden önce sorgulamalısınız aksi takdirde bahsettiğiniz çarpan etkisi karşınıza çıkar. Müşterinin tblsales tablosunda x, tblcashemoves tablosunda y kadar kaydı varsa bankcustom üzerinden join ile birleştirdiğinizde o müşteri için x*y kadar kayıt oluşur ve bunun üzerinden SUM işlemi yaparsanız kayıtlar tekrarlandığı için tutarlar birden çok kez hesaplamaya dahil edilmiş olur. O nedenle joinden önce her iki tabloda sorguyla toplam alıp müşteri bazında gruplamalı sonra join ile bankcustomla birleştirme yapmanız gerek. Buna göre çalışın olmaz ise toplantı çıkışında örneğinizi indirip yardımcı olmaya çalışırım başka hata var mı bakarak. Hocam ilginiz için çok teşekkür ederim, işin içinden bir türlü çıkamıyorum, kafam iyice karıştı. eklediğim dosyayı indirip; onun üzeriden yardımcı olursanız çok sevinirim. iyi akşamlar. RE: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - onur_can - 06/10/2025 Sorgunuzun en sonunda bulunan NakitTahsilat: Tutar alanının Toplam satırını İlk olarak değiştirin. Re: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - atoykan - 06/10/2025
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ı
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. RE: Sorguda Toplam Değerinin 4 Katı Olarak Gelmesi - truhi - 06/10/2025 (Dün, 10:32)atoykan yazdı:yapmak istediğiniz sorgu. Şöyle açıklayayım: Çok teşekkür ederim. iyi ki varsınız!! sağ olun, var olun ... (Dün, 09:33)onur_can yazdı: Sorgunuzun en sonunda bulunan NakitTahsilat: Tutar alanının Toplam satırını İlk olarak değiştirin. Çok teşekkür ederim Onur Hocam. iyi çalışmalar dilerim. |