CANDY, oczywiście masz rację jednak potrzebuję żeby były wszystkie z ostatnich 30dni
Proszę pomóż mi zakończyć moje wypociny z tym zapytaniem, a na przyszłość zlecę i zapłacę z uciechą zaoszczędzenia czasu. Na pewno nauczyło mnie to zapytanie pokory.
To zapytanie w ogóle sprawdzi się tylko w szczególnych przypadkach, bo nie będzie poprawnie liczyło sprzedaży z faktur zbiorczych, ani zaliczkowych, nie będzie pomijało faktur detalicznych ani unieważnionych.
Sprawdzi się dobrze tylko na zwykłych fakturach.
Na dodatek warunek dla daty jest niedobry, bo GETDATE() daje wynik z minutami a GT nie zapisuje czasu, więc na krawedziach przedziału będą błędy.
Biorąc to wszystko pod uwagę poprawione SELECT wygląda tak (świadomie wybrałeś tylko komplety, prawda?)
SELECT T.tw_IdGrupa, T.tw_Symbol, T.tw_Nazwa, ST.st_Stan, Sprzedaz_miesieczna = ISNULL(SP.Sprzedaz, 0)
FROM tw__Towar T
INNER JOIN tw_Stan ST ON ST.st_TowId = T.tw_Id AND ST.st_MagId = 1
LEFT JOIN (
SELECT ob_TowId, Sprzedaz = SUM(dok_Pozycja.ob_Ilosc)
FROM
dok_Pozycja
LEFT JOIN dok__Dokument ON ob_DokHanId = dok_id
WHERE
dok_DataWyst BETWEEN DATEADD(day,-30,getdate()) AND GETDATE()
AND dok_Typ = 2
AND dok_MagId = 1
AND ob_TowRodzaj = 8
GROUP BY ob_TowId
) SP ON T.tw_Id = SP.ob_TowId
WHERE
T.tw_Zablokowany = 0
AND T.tw_Rodzaj = 8
AND T.tw_IdGrupa IN(1,4)
AND T.tw_Nazwa NOT LIKE 'ści%'
AND T.tw_Nazwa NOT LIKE 'wyk%'
ORDER BY T.tw_Symbol
Jakby co to zwróć uwagę że warunek na rodzaj i magazyn występuje dwa razy.
A jakbyś chciał zestawienie, które wyliczy wszystko jak należy to juz zapraszam na PW, bo to trochę więcej dłubania.