AccessTr.neT

Tam Versiyon: Ba-bs Formu İçin Toplamlı Filtreleme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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
SELECT Tablo1.tarih, Tablo1.adi, Tablo1.faturabedeli
FROM Tablo1
WHERE (((Tablo1.faturabedeli)>=5000));

bu sorguyu kullan olacaktır.
ölçüt tek fatura değil firmanın dönem içinde kestiği faturalar toplamı olacak.
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));
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

[Resim: raporsorgu.png]
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);
Sayfalar: 1 2