SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= ALTER PROCEDURE [dbo].[sp_GetZestawienieZamowien] -- Add the parameters for the stored procedure here @agencja NVARCHAR(50)=NULL, @nrZamowienia INT=NULL, @rokZamowienia INT=NULL, @miesiacZamowienia INT=NULL, @kodAgenta NVARCHAR(3)=NULL, @kodKlienta NVARCHAR(10)=NULL AS BEGIN SET NOCOUNT ON; DECLARE @query nvarchar(4000) SET @query = ' DECLARE @ZestawienieZamowien TABLE ( idZamowienia INT, agencja NVARCHAR(50), agent NVARCHAR(50), idKlienta INT, nrZamowienia INT, rokZamowienia INT, kodAgenta NVARCHAR(3), nrZamowieniaExt NVARCHAR(76), iloscReklam INT, wartoscNetto FLOAT, kwotaWalutaBrutto float, data_od SMALLDATETIME, data_od_bez_FK SMALLDATETIME, nettoZafakturowane MONEY, DoZafakturowania FLOAT, kodKlienta NVARCHAR(10), Brutto_Euro_Miano NVARCHAR(4) ) DECLARE @SumaNaNastepnejFakturze TABLE ( idZamowienia INT, SumaNaNastepnejFakturze DECIMAL(18,2) ) INSERT INTO @ZestawienieZamowien SELECT TOP 1000 idZamowienia, agencja, agent, idKlienta, nrZamowienia, rokZamowienia, kodAgenta, nrZamowieniaExt, iloscReklam, wartoscNetto, kwotaWalutaBrutto, data_od, data_od_bez_FK, nettoZafakturowane, DoZafakturowania, kodKlienta, Brutto_Euro_Miano FROM VIEW_ZESTAWIENIE_ZAMOWIEN_NOWE WHERE 1=1 ' IF NOT (@agencja IS NULL) SET @query = @query + ' AND agencja=''' + @agencja + ''' ' IF NOT (@nrZamowienia IS NULL) SET @query = @query + ' AND nrZamowienia=' + CAST(@nrZamowienia as nvarchar) + ' ' IF NOT (@rokZamowienia IS NULL) SET @query = @query + ' AND rokZamowienia=' + CAST(@rokZamowienia as nvarchar) + ' ' IF NOT (@miesiacZamowienia IS NULL) SET @query = @query + ' AND (DATEPART(MONTH, data_od)=' + CAST(@miesiacZamowienia as nvarchar) + ' OR DATEPART(MONTH, data_od_bez_FK)=' + CAST(@miesiacZamowienia as nvarchar) + ') ' IF NOT (@kodAgenta IS NULL) SET @query = @query + ' AND kodAgenta=''' + @kodAgenta + ''' ' IF NOT (@kodKlienta IS NULL) SET @query = @query + ' AND kodKlienta=''' + @kodKlienta + ''' ' IF (NOT (@rokZamowienia IS NULL)) AND (NOT (@miesiacZamowienia IS NULL)) BEGIN SET @query = @query + ' DECLARE @startDate DATETIME DECLARE @endDate DATETIME SELECT @startDate=dateadd(yy,(' + CAST(@rokZamowienia as nvarchar) + '-1900),0) + dateadd(mm,' + CAST(@miesiacZamowienia as nvarchar) + '-1,0) + 0 SELECT @endDate=dateadd(yy,(' + CAST(@rokZamowienia as nvarchar) + '-1900),0) + dateadd(mm,' + CAST(@miesiacZamowienia as nvarchar) + '-1+3,0) + 0 INSERT INTO @SumaNaNastepnejFakturze SELECT Z.idZamowienia, SUM(ROUND((R.[Cena Jedn] * (1-R.Rabat)), 2)) AS SumaFaktura FROM Reklama R INNER JOIN Zamowienia Z ON R.idZamowienia=Z.idZamowienia INNER JOIN [Ukaże się w nr] U ON U.ReklamaId=R.ReklamaId INNER JOIN Nr N ON N.Tyt=R.[Tytuł] AND N.NRW=U.[Nr Wydania] WHERE Z.rodzajFakturowania=0 AND U.Status=0 AND U.Zafakturowana=0 AND YEAR(N.Data_W)=' + CAST(@rokZamowienia as nvarchar) + ' AND MONTH(N.Data_W)=' + CAST(@miesiacZamowienia as nvarchar) + ' GROUP BY Z.idZamowienia UNION SELECT Z.idZamowienia, SUM(ROUND((R.[Cena Jedn] * (1-R.Rabat)), 2)) AS SumaFaktura FROM Reklama R INNER JOIN Zamowienia Z ON R.idZamowienia=Z.idZamowienia INNER JOIN [Ukaże się w nr] U ON U.ReklamaId=R.ReklamaId INNER JOIN Nr N ON N.Tyt=R.[Tytuł] AND N.NRW=U.[Nr Wydania] WHERE Z.rodzajFakturowania=1 AND U.Status=0 AND U.Zafakturowana=0 AND N.Data_W>=@startDate AND N.Data_W<@endDate GROUP BY Z.idZamowienia UNION SELECT Z.idZamowienia, SUM(ROUND((R.[Cena Jedn] * (1-R.Rabat)), 2)) AS SumaFaktura FROM Reklama R INNER JOIN Zamowienia Z ON R.idZamowienia=Z.idZamowienia INNER JOIN [Ukaże się w nr] U ON U.ReklamaId=R.ReklamaId INNER JOIN Nr N ON N.Tyt=R.[Tytuł] AND N.NRW=U.[Nr Wydania] WHERE Z.rodzajFakturowania=2 AND U.Status=0 AND U.Zafakturowana=0 GROUP BY Z.idZamowienia ' END SET @query = @query + ' SELECT ZZ.*, SNF.SumaNaNastepnejFakturze FROM @ZestawienieZamowien ZZ ' SET @query = @query + ' LEFT OUTER JOIN @SumaNaNastepnejFakturze SNF ON SNF.idZamowienia=ZZ.idZamowienia ' SET @query = @query + ' ORDER BY ZZ.data_od_bez_FK, ZZ.nrZamowienia, ZZ.kodKlienta ' --PRINT @query EXECUTE sp_executesql @query RETURN END GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO