Witam,
Poprawnie działający kod:
DECLARE @dataDo DATETIME
SET @DataDo = '20161231'
SELECT
Year(dok_DataWyst) AS [Year],
Month(dok_DataWyst) AS [Month],
CASE WHEN ob_TowRodzaj = 1 THEN 'Towar' WHEN ob_TowRodzaj = 2 THEN 'Usługa jednorazowa' WHEN ob_TowRodzaj = 8 THEN 'Komplet' ELSE convert(char(20), ob_TowRodzaj) END AS 'Rodzaj towaru',
tw_Id AS 'Id towaru',
CASE WHEN tw_Nazwa = '' THEN '(Brak nazwy towaru)' ELSE
CASE WHEN tw_Nazwa IS NULL THEN '(Usługa jednorazowa)' ELSE tw_Nazwa END END AS Nazwa,
tw_Symbol AS Symbol,
SUM(ob_IloscMag * ob_Znak) as Ilość
FROM vwZstSprzWgKhnt LEFT JOIN tw__Towar ON ob_TowId = tw_Id LEFT JOIN sl_GrupaTw
ON tw_IdGrupa = grt_Id WHERE dok_Status<>2
AND (( (dok_DataWyst>='20160101') AND (dok_DataWyst<='20161231') )
AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp)
IN (131072, 131074, 131075, 131076, 131077, 262144, 393216, 393217, 393218, 1376256, 1376257,
1376258, 1376259, 917504, 917505, 4063232)) AND (dok_MagId IN (1))) AND ob_TowRodzaj & 15 > 0
GROUP BY
Year(dok_DataWyst), Month(dok_DataWyst),
ob_TowRodzaj, tw_Nazwa, tw_Symbol, grt_Nazwa,tw_JednMiary, tw_Id