Na miesiące rozbiłem, problem polega na tym , że month(d1.dok_datawyst) IN (3) THEN d1.dok_WartNetto else CAST (tu wpisuję narzut planu obrotowego AS MONEY) , ale wyświetli mi się ta wartość w momencie kiedy będę miał jakikolwiek dokument wystawiony w marcu, jeżeli takiego nie będzie to ta wartość się nie pokaże.A zestawienie wygląda tak wartości narzutów są przykładowe:
SELECT
n.miesiąc as okres,
cast (n.x as money) as [obrót planowany],
cast (n.o as money) AS [marża planowana],
cast (n.y as money) as [zysk planowany],
n.netto as [obrót wykonany],
( n.z ) / n.netto * 100 AS [marża wykonana],
n.z as [zysk wykonany],
- n.x + n.netto as [obrót różnica],
(( n.z ) / n.netto * 100) - ( n.o) AS [marża różnica],
n.z - n.y as [zysk różnica],
(case when (( n.z ) / n.netto * 100)>0 then n.y/(( n.z ) / n.netto * 100)*100
when (( n.z ) / n.netto * 100)<0 then -(n.z - n.y)/n.o*100 end) AS [obrót według marży],
(case when (( n.z ) / n.netto * 100)>0 then n.netto/ (n.y/(( n.z ) / n.netto * 100)*100)*100
when (( n.z ) / n.netto * 100)<0 then (n.z/n.y)*100 end) as [ % realizacji obrotu według marży],
(case when (( n.z ) / n.netto * 100)>0 then n.netto - (n.y/(( n.z ) / n.netto * 100)*100)
when (( n.z ) / n.netto * 100)<0 then (n.z - n.y)/n.o*100 end) AS [Obrót marża różnica]
FROM (SELECT
SUM(CASE WHEN dok_typ IN ( 2, 6,4 ) THEN [dok_WartTwNetto] + [dok_WartUsNetto] END) AS netto,
SUM(CASE WHEN dok_typ IN ( 2, 6,4 ) THEN dok_wartmag ELSE dok_wartusnetto END) AS koszt,
SUM(CASE WHEN dok_typ IN ( 2, 6,4 ) THEN [dok_WartTwNetto] + [dok_WartUsNetto] END) -
SUM(CASE WHEN dok_typ IN ( 2, 6,4 ) THEN dok_wartmag END) -
SUM(CASE WHEN dok_typ IN ( 1,3 ) THEN dok_wartusnetto END) AS z,
(CASE
WHEN month(d1.dok_datawyst) IN (1) THEN CAST (25 AS MONEY)
WHEN month(d1.dok_datawyst) IN (2) THEN CAST (20 AS MONEY)
WHEN month(d1.dok_datawyst) IN (3) THEN CAST (35 AS MONEY)
WHEN month(d1.dok_datawyst) IN (4) THEN CAST (40 AS MONEY)
WHEN month(d1.dok_datawyst) IN (5) THEN CAST (40 AS MONEY)
WHEN month(d1.dok_datawyst) IN (6) THEN CAST (30 AS MONEY)
WHEN month(d1.dok_datawyst) IN (7) THEN CAST (40 AS MONEY)
WHEN month(d1.dok_datawyst) IN (

THEN CAST (30 AS MONEY)
WHEN month(d1.dok_datawyst) IN (9) THEN CAST (40 AS MONEY)
WHEN month(d1.dok_datawyst) IN (10) THEN CAST (40 AS MONEY)
WHEN month(d1.dok_datawyst) IN (11) THEN CAST (60 AS MONEY)
WHEN month(d1.dok_datawyst) IN (12) THEN CAST (80 AS MONEY)
END) as x,
(CASE
WHEN month(d1.dok_datawyst) IN (1) THEN CAST ( 3 AS MONEY)
WHEN month(d1.dok_datawyst) IN (2) THEN CAST ( 2 AS MONEY)
WHEN month(d1.dok_datawyst) IN (3) THEN CAST ( 4 AS MONEY)
WHEN month(d1.dok_datawyst) IN (4) THEN CAST ( 5 AS MONEY)
WHEN month(d1.dok_datawyst) IN (5) THEN CAST ( 5 AS MONEY)
WHEN month(d1.dok_datawyst) IN (6) THEN CAST ( 4 AS MONEY)
WHEN month(d1.dok_datawyst) IN (7) THEN CAST ( 5 AS MONEY)
WHEN month(d1.dok_datawyst) IN (

THEN CAST ( 4 AS MONEY)
WHEN month(d1.dok_datawyst) IN (9) THEN CAST ( 5 AS MONEY)
WHEN month(d1.dok_datawyst) IN (10) THEN CAST ( 5 AS MONEY)
WHEN month(d1.dok_datawyst) IN (11) THEN CAST ( 8 AS MONEY)
WHEN month(d1.dok_datawyst) IN (12) THEN CAST (10 AS MONEY)
END) as y,
(CASE WHEN month(d1.dok_datawyst) IN (1,2,3,4,5,6,7,8,9,10,11,12) THEN CAST (1 AS MONEY) END ) as o,
dbo.fnNazwaOkresu('mm',d1.dok_DataWyst) as miesiąc
FROM dok__dokument d1
WHERE ( d1.dok_typ IN ( 1, 2,3,4 )
OR ( d1.dok_typ = 6 AND d1.dok_podtyp <> 1 ) ) AND d1.dok_Status !=2
AND (d1.dok_MagId IN (10,59,12))
AND d1.dok_MagId NOT IN (SELECT pf_Idobiektu FROM sl_MagazynProfil WHERE pf_IdUzytkownika = {ID_UZYTKOWNIKA})
AND ({LI:miesieczny#1#kwartalny#2#narastający#3:Wybór okresu:3:narastający})=1
AND ({LI:sprzedaż#1#sprzedaż + zamówienia#2#zamówienia#3:Wybór wartości:2:sprzedaż+zamówienia})=1
AND ({LI:zespół VII,II,III#1#zespół VI,IX,IV#2#zespół V#3#zespół I#4#Firma#5#Serwis#6:Wybór zespołu})=1
AND (month(d1.dok_DataWyst) IN
({CHL:styczeń#1#luty#2#marzec#3#kwiecień#4#maj#5#czerwiec#6#lipiec#7#sierpień#8#wrzesień#9#październik#10#listopad#11#grudzień#12#:miesiąc:1,2,3,4,5,6,7,8,9,10,11,12:wszystkie}))
AND year(d1.dok_datawyst) = 2012 group by dbo.fnNazwaOkresu('mm',d1.dok_DataWyst), month(d1.dok_datawyst)) AS n