DECLARE @rok INT
DECLARE @ms INT

DECLARE @agent nvarchar(100)

SET @rok=2009
SET @ms=4
SET @agent='stachura'

DECLARE @Agents TABLE
(
	symbol nvarchar(25)
)


SELECT
R.[symbol akwizytora] AS Agent,
R.ReklamaID AS ReklmaID,
K.kodKlienta as KodKilenta, 
Z.idZamowienia,
Z.nrZamowienia as NrZamowienia, 
Z.kodAgenta as KodAgenta, 
Z.rokZamowienia as RokZamowienia, 
R.[ID Reklamy] as Reklama,
Suma = CASE R.wyroznienie 
                 WHEN 0 THEN ROUND(COALESCE(SUM([cena jedn] - [rabat wartość]), 0), 2)
                 ELSE ROUND(COALESCE(SUM([cena jedn] - [rabat wartość]), 0) + (R.wyroznienie_procent * COALESCE(SUM([cena jedn] - [rabat wartość]), 0)), 2)
END
FROM [ukaże się w nr] E 
INNER JOIN Reklama R on E.ReklamaID=R.ReklamaID
INNER JOIN NR N on E.[Nr Wydania]=N.NRW and R.[TYTUŁ] = N.TYT
INNER JOIN Zamowienia Z ON R.idZamowienia = Z.idZamowienia
INNER JOIN Klienci K on K.CustomerID = Z.idKlienta 
WHERE 
E.zafakturowana=0
AND R.[ZATWIERDZONO DO DRUKU]=1
AND E.status<>2
AND Z.rodzajFakturowania=0 -- fakturowanie co miesiac
AND MONTH(N.Data_W) in (@ms) AND YEAR(N.Data_W) = @rok
AND ((R.[symbol akwizytora] in (@agent))  OR (R.[symbol akwizytora] COLLATE SQL_Latin1_General_CP1250_CI_AS in (select symbol COLLATE SQL_Latin1_General_CP1250_CI_AS from @Agents)))
AND Z.rokZamowienia = @rok
GROUP BY 
R.[symbol akwizytora], R.ReklamaID, K.kodKlienta, Z.idZamowienia, Z.nrZamowienia, Z.kodAgenta, Z.rokZamowienia, R.[ID Reklamy], R.wyroznienie, R.wyroznienie_procent

UNION 

SELECT 
R.[symbol akwizytora] AS Agent,
R.ReklamaID AS ReklmaID,
K.kodKlienta as KodKilenta, 
Z.idZamowienia,
Z.nrZamowienia as NrZamowienia, 
Z.kodAgenta as KodAgenta, 
Z.rokZamowienia as RokZamowienia, 
R.[ID Reklamy] as Reklama,
Suma = CASE R.wyroznienie 
                 WHEN 0 THEN ROUND(COALESCE(SUM([cena jedn] - [rabat wartość]), 0), 2)
                 ELSE ROUND(COALESCE(SUM([cena jedn] - [rabat wartość]), 0) + (R.wyroznienie_procent * COALESCE(SUM([cena jedn] - [rabat wartość]), 0)), 2)
END
FROM [ukaże się w nr] E 
INNER JOIN Reklama R on E.ReklamaID=R.ReklamaID
INNER JOIN NR N on E.[Nr Wydania]=N.NRW and R.[TYTUŁ] = N.TYT
INNER JOIN Zamowienia Z ON R.idZamowienia = Z.idZamowienia
INNER JOIN Klienci K on K.CustomerID = Z.idKlienta 
INNER JOIN ZAMOWIENIA_1EMISJA_bezFK EBezFk ON EBezFk.idZamowienia=Z.idZamowienia
WHERE 
E.zafakturowana=0
AND R.[ZATWIERDZONO DO DRUKU]=1
AND E.status<>2
AND Z.rodzajFakturowania=1 -- fakturowanie co trzy miesiace
AND MONTH(N.Data_W) between @ms and (@ms+2)
AND YEAR(N.Data_W) = @rok
AND MONTH(EBezFk.data1) = @ms
AND YEAR(EBezFk.data1) = @rok
AND ((R.[symbol akwizytora] in (@agent))  OR (R.[symbol akwizytora] COLLATE SQL_Latin1_General_CP1250_CI_AS in (select symbol COLLATE SQL_Latin1_General_CP1250_CI_AS from @Agents)))
AND Z.rokZamowienia = @rok
GROUP BY 
R.[symbol akwizytora], R.ReklamaID, K.kodKlienta, Z.idZamowienia, Z.nrZamowienia, Z.kodAgenta, Z.rokZamowienia, R.[ID Reklamy], R.wyroznienie, R.wyroznienie_procent


UNION 

SELECT 
R.[symbol akwizytora] AS Agent,
R.ReklamaID AS ReklmaID,
K.kodKlienta as KodKilenta, 
Z.idZamowienia,
Z.nrZamowienia as NrZamowienia, 
Z.kodAgenta as KodAgenta, 
Z.rokZamowienia as RokZamowienia, 
R.[ID Reklamy] as Reklama,
Suma = CASE R.wyroznienie 
                 WHEN 0 THEN ROUND(COALESCE(SUM([cena jedn] - [rabat wartość]), 0), 2)
                 ELSE ROUND(COALESCE(SUM([cena jedn] - [rabat wartość]), 0) + (R.wyroznienie_procent * COALESCE(SUM([cena jedn] - [rabat wartość]), 0)), 2)
END
FROM [ukaże się w nr] E 
INNER JOIN Reklama R on E.ReklamaID=R.ReklamaID
INNER JOIN NR N on E.[Nr Wydania]=N.NRW and R.[TYTUŁ] = N.TYT
INNER JOIN Zamowienia Z ON R.idZamowienia = Z.idZamowienia
INNER JOIN Klienci K on K.CustomerID = Z.idKlienta 
INNER JOIN ZAMOWIENIA_1EMISJA_bezFK EBezFk ON EBezFk.idZamowienia=Z.idZamowienia
WHERE 
E.zafakturowana=0
AND R.[ZATWIERDZONO DO DRUKU]=1
AND E.status<>2
AND Z.rodzajFakturowania=2 -- fakturowanie wsio co w zamowieniu
AND MONTH(N.Data_W) >= MONTH(EBezFk.data1)
AND YEAR(N.Data_W) >= YEAR(EBezFk.data1)
AND MONTH(EBezFk.data1) = @ms
AND YEAR(EBezFk.data1) = @rok
AND ((R.[symbol akwizytora] in (@agent))  OR (R.[symbol akwizytora] COLLATE SQL_Latin1_General_CP1250_CI_AS in (select symbol COLLATE SQL_Latin1_General_CP1250_CI_AS from @Agents)))
AND Z.rokZamowienia = @rok
GROUP BY 
R.[symbol akwizytora], R.ReklamaID, K.kodKlienta, Z.idZamowienia, Z.nrZamowienia, Z.kodAgenta, Z.rokZamowienia, R.[ID Reklamy], R.wyroznienie, R.wyroznienie_procent
