Witam, potrzebuję pomocy w edycji zestawienia, na lata 2017 i 2016 zliczanie towarów działa ale ni cholere nie działa na wcześniejsze lata to co wyróżniłem na kolor czerwony odpowiada za zliczanie w danych latach. Gdzie jest błąd w moim zestawieniu tz w tym zliczaniu. Nie dokońca rozumiem funkcę z datami i niewiem czy prawidłowo jest to zrobione. Proszę o pomoc.
Niestety wyroznienie na czerwono nie zadziałało. Poniżej fragment kodu ktory za to odpowiada i gdzie jest błąd o ile to tutaj jest błąd.
,ISNULL(w.ilosc4, 0) [4 lata ilość]
,ISNULL(w.ilosc3, 0) [3 lata ilość]
,ISNULL(w.ilosc2, 0) [2 lata ilość]
,ISNULL(w.ilosc1, 0) [2016 ilość - poprzedni rok]
,ISNULL(w.ilosc0, 0) [2017 ilość- -biezacy rok]
oraz kod
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 0, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 0, 0)) then ob_IloscMag else 0 end) ilosc0
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 1, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1,GETDATE())) - 1, 0)) then ob_IloscMag else 0 end) ilosc1
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 2, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 2, 0)) then ob_IloscMag else 0 end) ilosc2
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 3, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 3, 0)) then ob_IloscMag else 0 end) ilosc3
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 4, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 4, 0)) then ob_IloscMag else 0 end) ilosc4
CAŁE ZESTAWIENIE PONIŻEJ
select tw_Symbol [Symbol]
,tw_Nazwa [Nazwa]
,case tw_Zablokowany when 1 then CAST(0 as bit) else CAST(1 as bit) end [Aktywny]
,ISNULL(w.ilosc4, 0) [4 lata ilość]
,ISNULL(w.ilosc3, 0) [3 lata ilość]
,ISNULL(w.ilosc2, 0) [2 lata ilość]
,ISNULL(w.ilosc1, 0) [2016 ilość - poprzedni rok]
,ISNULL(w.ilosc0, 0) [2017 ilość- -biezacy rok]
,(select SUM(st_Stan)
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (1, 21, 31, 37)) [Zrobione]
,(select st_Stan
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (1)) [Główny ilość]
,(select st_Stan
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (21)) [Lukas ilość]
,(select SUM(st_Stan)
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (31,166)) [Piotr Krzysiek ilość]
,(select st_Stan
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (37)) [Rysiu Szczytno ilość]
,(select st_Stan
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (13)) [Brudy]
from tw__Towar
left join
(
select ob_TowId
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 0, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 0, 0)) then ob_IloscMag else 0 end) ilosc0
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 1, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1,GETDATE())) - 1, 0)) then ob_IloscMag else 0 end) ilosc1
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 2, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 2, 0)) then ob_IloscMag else 0 end) ilosc2
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 3, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 3, 0)) then ob_IloscMag else 0 end) ilosc3
,SUM(case when dok_DataWyst between DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 4, 0) and DATEADD(DAY, -1, DATEADD(YEAR, DATEDIFF(YEAR, 0, DATEADD(YEAR, 1, GETDATE())) - 4, 0)) then ob_IloscMag else 0 end) ilosc4
from dok__Dokument
join dok_Pozycja on dok_Id = ob_DokMagId
where dok_Status <> 2
and dok_Typ in (9, 11)
and dok_MagId = 1
and dok_DataWyst >= DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 1, 0)
group by ob_TowId
) w on tw_Id = ob_TowId
where tw_Usuniety = 0
and
(
tw_Zablokowany = {LI:(dowolnym)#-1#aktywne#0#nieaktywne#1#:Towary o statusie:-1}
or
-1 = {LI:(dowolnym)#-1#aktywne#0#nieaktywne#1#:Towary o statusie:-1}
)
and
(select SUM(st_Stan)
from tw_Stan
where st_TowId = tw_Id
and st_MagId in (1, 21, 31, 37)) > {LI:(dowolnym)#-1#niezerowym#0:o stanie:-1}
and
(
tw_IdGrupa in ({CHL_DB: select grt_Id, grt_Nazwa from dbo.sl_GrupaTw order by grt_Nazwa:Grupa:0:Nie wybrana})
)