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) ) IF @agencja='Wszystkie' BEGIN INSERT INTO @Agents(symbol) SELECT symbol FROM AGENCI WHERE aktywny=1 END 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