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

Wersja 794, 4.4 KB (wprowadzona przez marek, 17 years temu)

fixes #197

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@promocja int = NULL,
21@zd bit = NULL,
22@fw bit = NULL,
23@kz bit = NULL,
24@wy bit = NULL,
25@bz bit = NULL
26
27AS
28BEGIN
29
30DECLARE @query nvarchar(4000)
31
32SET @query = ''
33
34IF (NOT (@rok IS NULL)) AND (NOT (@ms IS NULL))
35BEGIN
36
37SET @query = @query +
38'
39DECLARE @startDate DATETIME
40DECLARE @endDate DATETIME
41
42SELECT @startDate=dateadd(yy,(' + CAST(@rok as nvarchar) + '-1900),0) + dateadd(mm,' + CAST(@ms as nvarchar) + '-1,0) + 0
43SELECT @endDate=dateadd(yy,(' + CAST(@rok as nvarchar) + '-1900),0) + dateadd(mm,' + CAST(@ms as nvarchar) + '-1+1,0) + 0
44
45'
46END
47
48
49SET @query = @query + '
50
51SELECT TOP 1000
52R.*,
53O.wyd_od AS OD,
54O.wyd_do AS DO,
55DATEPART(year, N.DATA_W),
56DATEPART(month, N.DATA_W),
57N.DATA_W AS ''1emisja'',
58A.Symbol AS agencja,
59(r.[CENA JEDN] - r.[RABAT WARTOŒÆ]) / r.SZER * r.WYS AS [CENA MODU£U],
60NM.CENA_MIN,
61NM.CENA,
62K.firstname,
63Z.idZamowienia 
64FROM dbo.AGENCI A2
65JOIN dbo.AGENCJE A ON A.Id_agencji = A2.ID_AGENCJI
66RIGHT JOIN REKLAMA R ON A2.Symbol = R.[SYMBOL AKWIZYTORA]
67LEFT JOIN dbo.VIEW_REKLAMA_OD_DO_DATY O ON R.ReklamaID = O.ReklamaId
68LEFT JOIN dbo.NR N ON R.TYTU£ = N.TYT AND O.wyd_od = N.NRW
69LEFT OUTER JOIN [NAZWY MODU£ÓW] NM ON r.MOD_TYP = NM.MOD_TYP AND r.[Tytu³] = NM.Tytul
70LEFT OUTER JOIN dbo.KLIENCI AS K ON R.customerId=K.CustomerId
71LEFT OUTER JOIN dbo.Zamowienia AS Z ON R.idZamowienia=Z.idZamowienia
72where 1=1 and (r.SZER * r.WYS)<>0 '
73
74IF NOT (@agencja IS NULL)
75SET @query = @query + ' AND A.Symbol=''' + @agencja + ''' '
76
77IF NOT (@agent IS NULL)
78SET @query = @query + ' AND [symbol akwizytora] like ''%' + @agent + '%'' '
79
80IF NOT (@reklama IS NULL)
81SET @query = @query + ' AND r.[id reklamy] like ''%' + @reklama + '%'' '
82
83IF NOT (@rok IS NULL)
84SET @query = @query + ' AND DATEPART(year, N.DATA_W)=' + CAST(@rok as nvarchar) + ' '
85
86IF (NOT (@rok IS NULL)) AND (NOT (@ms IS NULL))
87BEGIN
88SET @query = @query + ' AND R.ReklamaId IN '
89SET @query = @query + ' (SELECT DISTINCT U.reklamaid '
90SET @query = @query + ' FROM [Uka¿e siê w Nr] U '
91SET @query = @query + ' INNER JOIN Reklama R on R.ReklamaID=U.ReklamaID '
92SET @query = @query + ' INNER JOIN dbo.Nr N on U.[nr wydania]=N.nrw and N.TYT=R.[Tytu³] '
93SET @query = @query + ' WHERE N.Data_W>=@startDate AND N.Data_W<@endDate '
94IF (NOT @fw IS NULL)
95SET @query = @query + ' AND U.Zafakturowana=' + CAST(@fw as nvarchar)
96IF NOT (@agent IS NULL)
97SET @query = @query + ' AND R.[symbol akwizytora] like ''%' + @agent + '%'' '
98
99IF NOT (@tytul IS NULL)
100SET @query = @query + ' AND R.[tytu³]=''' + @tytul + ''' '
101
102IF NOT (@typ IS NULL)
103SET @query = @query + ' AND R.[TYP]=''' + @typ + ''' '
104
105IF NOT (@promocja IS NULL)
106SET @query = @query + ' AND R.[Promocja]=' + CAST(@promocja as nvarchar) + ' '
107
108IF NOT (@zd IS NULL)
109SET @query = @query + ' AND R.[Zatwierdzono do druku]=' + CAST(@zd as nvarchar) + ' '
110
111IF NOT (@kz IS NULL)
112SET @query = @query + ' AND R.[Kier_zatwierdzil]=' + CAST(@kz as nvarchar) + ' '
113
114IF NOT (@wy IS NULL)
115SET @query = @query + ' AND R.[wyroznienie]=' + CAST(@wy as nvarchar) + ' '
116
117SET @query = @query + ' ) '
118END
119
120IF NOT (@tytul IS NULL)
121SET @query = @query + ' AND R.[tytu³]=''' + @tytul + ''' '
122
123IF NOT (@typ IS NULL)
124SET @query = @query + ' AND R.[TYP]=''' + @typ + ''' '
125
126IF NOT (@promocja IS NULL)
127SET @query = @query + ' AND R.[Promocja]=' + CAST(@promocja as nvarchar) + ' '
128
129IF NOT (@zd IS NULL)
130SET @query = @query + ' AND R.[Zatwierdzono do druku]=' + CAST(@zd as nvarchar) + ' '
131
132IF NOT (@kz IS NULL)
133SET @query = @query + ' AND R.[Kier_zatwierdzil]=' + CAST(@kz as nvarchar) + ' '
134
135IF NOT (@wy IS NULL)
136SET @query = @query + ' AND R.[wyroznienie]=' + CAST(@wy as nvarchar) + ' '
137
138IF NOT (@bz IS NULL)
139BEGIN
140IF @bz=1
141SET @query = @query + ' AND R.idZamowienia IS NULL '
142ELSE
143SET @query = @query + ' AND R.idZamowienia IS NOT NULL '
144END
145
146
147--PRINT @query
148
149
150EXECUTE sp_executesql @query
151RETURN
152
153END
154GO
155
156SET ANSI_NULLS OFF
157GO
158SET QUOTED_IDENTIFIER OFF
159GO
160
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.