Problem z filtrowaniem danych

Problem z filtrowaniem danych
PD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Witam
Mam do rozwiązania pewien problem
Mam poniższy SQL w access

Kopiuj
SELECT tblKartoteka.Id, tblTransferyPoz.IdKart, Sum(tblTransferyPoz.Ilosc) AS StanMag, tblKartoteka.ZapasMin AS Zapas, IIf([StanMag]<[Zapas],[Zapas]-[StanMag],iif([StanMag] is null,Zapas,0)) AS DoZamowienia
FROM tblKartoteka LEFT JOIN tblTransferyPoz ON tblKartoteka.Id = tblTransferyPoz.IdKart
GROUP BY tblKartoteka.Id, tblTransferyPoz.IdKart, tblKartoteka.ZapasMin;

Wynik powyższego zapytania poniżej:
screenshot-20250512124943.png

Jak przerobić tego SQL, żeby powyższe zapytanie zwracało wartości tylko powyżej "0" w ostatniej kolumnie ("DoZamowienia") ?

Próbowałem wielu rzeczy, ale strasznie się zaciąłem na tym

p.s. Nie przejmujcie się stanami ujemnymi w kolumnie "StanMag" - tam są tylko dane testowe.

Z góry dzięki za info

AC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 84
0

Cześć,

Masz w sumie dwie opcje, dodać do całej klauzuli having(po wyrażeniu group by) lub zrobić podzapytanie i wewnętrznie where.

Kopiuj
HAVING 
  IIf(
    Nz(Sum(tblTransferyPoz.Ilosc),0) < tblKartoteka.ZapasMin,
    tblKartoteka.ZapasMin - Nz(Sum(tblTransferyPoz.Ilosc),0),
    0
  ) > 0;
Kopiuj
select
  q.Id,
  q.IdKart,
  q.StanMag,
  q.Zapas,
  q.DoZamowienia
SELECT tblKartoteka.Id, tblTransferyPoz.IdKart, Sum(tblTransferyPoz.Ilosc) AS StanMag, tblKartoteka.ZapasMin AS Zapas, IIf([StanMag]<[Zapas],[Zapas]-[StanMag],iif([StanMag] is null,Zapas,0)) AS DoZamowienia
FROM tblKartoteka LEFT JOIN tblTransferyPoz ON tblKartoteka.Id = tblTransferyPoz.IdKart
GROUP BY tblKartoteka.Id, tblTransferyPoz.IdKart, tblKartoteka.ZapasMin ) as q
where q.dozamowienia > 0;
PD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Super, wszystko działa zarąbiście. Jesteś Mistrzem ! :)
Dzięki wielkie za pomoc !

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.