root/trunk/SQL/StoredProcedures/sp_GetReklamy.txt @ 312

Wersja 312, 3.2 KB (wprowadzona przez marek, 17 years temu)

re #56 - dodano procedure do wyszukiwania reklam

Line 
1
2SET ANSI_NULLS ON
3GO
4SET QUOTED_IDENTIFIER ON
5GO
6
7-- =============================================
8-- Author:              <Author,,Name>
9-- Create date: <Create Date,,>
10-- Description: <Description,,>
11-- =============================================
12ALTER PROCEDURE [dbo].[sp_GetReklamy]
13@agencja nvarchar(100) = NULL,
14@agent nvarchar(100) = NULL,
15@reklama nvarchar(100) = NULL,
16@rok int = NULL,
17@ms int = NULL,
18@tytul nvarchar(100) = NULL,
19@typ nvarchar(100) = NULL,
20@zd bit = NULL,
21@fw bit = NULL,
22@kz bit = NULL,
23@wy bit = NULL,
24@bz bit = NULL
25
26AS
27BEGIN
28
29DECLARE @query nvarchar(4000)
30
31
32
33set @query = '
34SELECT TOP 1000
35--R.ReklamaID
36R.*,
37O.wyd_od AS OD,
38O.wyd_do AS DO,
39DATEPART(year, NR.DATA_W),
40DATEPART(month, NR.DATA_W),
41NR.DATA_W AS ''1emisja'',
42A.Symbol AS agencja,
43(r.[CENA JEDN] - r.[RABAT WARTOŒÆ]) / r.SZER * r.WYS AS [CENA MODU£U],
44NM.CENA_MIN,
45NM.CENA,
46K.firstname,
47Z.idZamowienia 
48FROM dbo.AGENCI A2
49JOIN dbo.AGENCJE A ON A.Id_agencji = A2.ID_AGENCJI
50RIGHT JOIN REKLAMA R ON A2.Symbol = R.[SYMBOL AKWIZYTORA]
51LEFT JOIN dbo.VIEW_REKLAMA_OD_DO_DATY O ON R.ReklamaID = O.ReklamaId
52LEFT JOIN NR ON R.TYTU£ = NR.TYT AND O.wyd_od = NR.NRW -- OR O.wyd_do = NR.NRW)
53LEFT OUTER JOIN [NAZWY MODU£ÓW] NM ON r.MOD_TYP = NM.MOD_TYP
54LEFT OUTER JOIN dbo.KLIENCI AS K ON R.customerId=K.CustomerId
55LEFT OUTER JOIN dbo.Zamowienia AS Z ON R.idZamowienia=Z.idZamowienia
56where 1=1 and (r.SZER * r.WYS)<>0 '
57
58if NOT (@agencja IS NULL)
59SET @query = @query + ' AND A.Symbol=''' + @agencja + ''' '
60
61if NOT (@agent IS NULL)
62SET @query = @query + ' AND [symbol akwizytora] like ''%' + @agent + '%'' '
63
64if NOT (@reklama IS NULL)
65SET @query = @query + ' AND r.[id reklamy] like ''%' + @reklama + '%'' '
66
67if NOT (@rok IS NULL)
68SET @query = @query + ' AND DATEPART(year,NR.DATA_W)=' + CAST(@rok as nvarchar) + ' '
69
70if NOT (@ms IS NULL)
71--SET @query = @query + ' AND DATEPART(month,NR.DATA_W)=' + CAST(@ms as nvarchar) + ' '
72BEGIN
73SET @query = @query + ' AND DATEPART(month, O.data_od)<=' + CAST(@ms as nvarchar) + ' '
74SET @query = @query + ' AND DATEPART(month, O.data_do)>=' + CAST(@ms as nvarchar) + ' '
75END
76
77if NOT (@tytul IS NULL)
78SET @query = @query + ' AND R.[tytu³]=''' + @tytul + ''' '
79
80if NOT (@typ IS NULL)
81SET @query = @query + ' AND R.[TYP]=''' + @typ + ''' '
82
83if (NOT (@fw IS NULL) AND NOT(@ms IS NULL) AND NOT(@rok IS NULL))
84BEGIN
85SET @query = @query + ' AND R.ReklamaId IN '
86SET @query = @query + ' (SELECT DISTINCT U.reklamaid '
87SET @query = @query + ' FROM [Uka¿e siê w Nr] U '
88SET @query = @query + ' INNER JOIN Reklama R on R.ReklamaID=U.ReklamaID '
89SET @query = @query + ' INNER JOIN nr N on u.[nr wydania]=N.nrw and N.TYT=R.[Tytu³] '
90SET @query = @query + ' WHERE DATEPART(MONTH, N.Data_W)=' + CAST(@ms as nvarchar)
91SET @query = @query + ' AND DATEPART(YEAR, N.Data_W)=' + CAST(@rok as nvarchar)
92SET @query = @query + ' AND U.Zafakturowana=' + CAST(@fw as nvarchar) + ') '
93END
94
95
96print @query
97
98
99--SET @query = 'DECLARE @result TABLE ( id INT PRIMARY KEY ) INSERT INTO @result ' + @query
100--SET @query = @query + ' SELECT * FROM @result'
101
102EXECUTE sp_executesql @query
103RETURN
104
105END
106GO
107
108SET ANSI_NULLS OFF
109GO
110SET QUOTED_IDENTIFIER OFF
111GO
112
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.