Ba-bs Formu İçin Toplamlı Filtreleme

1 2
02/08/2021, 15:39

Yunus Bozkurt

Merhaba  dönem içinde fatura toplamları (tek ya da daha fazla fatura olabilir.) 5000₺ geçen müşteri listesi ve fatura toplamlarını görmek istiyorum.  Access ile müşteri gruplayarak bunu yaptım. ancak faturalarının toplamları 5000₺ altında olanları gizleyemedim. istediğim resimdeki gibi bir şey
02/08/2021, 22:58

C*e*l*o*y*c*e

SELECT Tablo1.tarih, Tablo1.adi, Tablo1.faturabedeli
FROM Tablo1
WHERE (((Tablo1.faturabedeli)>=5000));

bu sorguyu kullan olacaktır.
03/08/2021, 08:20

Yunus Bozkurt

ölçüt tek fatura değil firmanın dönem içinde kestiği faturalar toplamı olacak.
03/08/2021, 19:47

berduş

dönemden kast ettiğiniz ne, gün mü? eğer öyleyse aşağıdaki kodu dener misiniz?
SELECT Tablo1.tarih, Tablo1.adi, Sum(Tablo1.faturabedeli) AS Toplafaturabedeli
FROM Tablo1
GROUP BY Tablo1.tarih, Tablo1.adi
HAVING (((Sum(Tablo1.faturabedeli))>=5000));
04/08/2021, 06:09

Yunus Bozkurt

Dönemden kast ettiğim bir ay.  Diyelim Falanca firmaya 2 tane fatura kesmişim 4800₺+300₺ =5100₺ . bu firma limiti geçmiş oluyor.  dolayısı ile  bu firmanın 2 faturasını da listelemek istiyorum.  fatura kayıtları; 4800+150 =4950 olsaydı sorgu sonucunda hiç bir kayıt göstermemeli.

sorgu sonucu aşağıdaki gibi olmalı;
tarih ,  Falanca,  4900
tarih,    Falanca,    200


04/08/2021, 07:38

berduş

bunun için 3lü sorgu gerekir diye düşünüyorum
1 - döneme göre gruplayıp süzecek sorgu
SELECT Tablo1.adi, Sum(Tablo1.faturabedeli) AS Toplafaturabedeli, Month([tarih]) & "-" & Year([tarih]) AS Dönem
FROM Tablo1
GROUP BY Tablo1.adi, Month([tarih]) & "-" & Year([tarih])
HAVING (((Sum(Tablo1.faturabedeli))>=5000));
2 - döneme ayıracak sorgu
SELECT Month([tarih]) & "-" & Year([tarih]) AS Dönem, Tablo1.tarih, Tablo1.adi, Tablo1.faturabedeli
FROM Tablo1;
3 - diğer 2 sorguyu bağlayan sonuç sorgusu
SELECT FaturaSQL.tarih, FaturaSQL.adi, FaturaSQL.faturabedeli
FROM DonemSQL INNER JOIN FaturaSQL ON (DonemSQL.adi = FaturaSQL.adi) AND (DonemSQL.Dönem = FaturaSQL.Dönem);
1 2