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

Wersja 313, 3.5 KB (wprowadzona przez marek, 17 years temu)

fixes #56 - poprawiono wyszukiwanie reklam

Line 
1
2SET ANSI_NULLS ON
3GO
4SET QUOTED_IDENTIFIER ON
5GO
6
7-- =============================================
8-- Author:              marek
9-- Create date: 2009-02-08
10-- Description: Wyszukuje reklamy odpowiedniodo podanych parametrow
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)
71BEGIN
72SET @query = @query + ' AND DATEPART(month, O.data_od)<=' + CAST(@ms as nvarchar) + ' '
73SET @query = @query + ' AND DATEPART(month, O.data_do)>=' + CAST(@ms as nvarchar) + ' '
74END
75
76if NOT (@tytul IS NULL)
77SET @query = @query + ' AND R.[tytu³]=''' + @tytul + ''' '
78
79if NOT (@typ IS NULL)
80SET @query = @query + ' AND R.[TYP]=''' + @typ + ''' '
81
82if (NOT (@fw IS NULL) AND NOT(@ms IS NULL) AND NOT(@rok IS NULL))
83BEGIN
84SET @query = @query + ' AND R.ReklamaId IN '
85SET @query = @query + ' (SELECT DISTINCT U.reklamaid '
86SET @query = @query + ' FROM [Uka¿e siê w Nr] U '
87SET @query = @query + ' INNER JOIN Reklama R on R.ReklamaID=U.ReklamaID '
88SET @query = @query + ' INNER JOIN nr N on u.[nr wydania]=N.nrw and N.TYT=R.[Tytu³] '
89SET @query = @query + ' WHERE DATEPART(MONTH, N.Data_W)=' + CAST(@ms as nvarchar)
90SET @query = @query + ' AND DATEPART(YEAR, N.Data_W)=' + CAST(@rok as nvarchar)
91SET @query = @query + ' AND U.Zafakturowana=' + CAST(@fw as nvarchar) + ') '
92END
93
94IF NOT (@zd IS NULL)
95SET @query = @query + ' AND R.[Zatwierdzono do druku]=' + CAST(@zd as nvarchar) + ' '
96
97IF NOT (@kz IS NULL)
98SET @query = @query + ' AND R.[Kier_zatwierdzil]=' + CAST(@kz as nvarchar) + ' '
99
100IF NOT (@wy IS NULL)
101SET @query = @query + ' AND R.[wyroznienie]=' + CAST(@wy as nvarchar) + ' '
102
103IF NOT (@bz IS NULL)
104BEGIN
105IF @bz=1
106SET @query = @query + ' AND R.idZamowienia IS NULL '
107ELSE
108SET @query = @query + ' AND R.idZamowienia IS NOT NULL '
109END
110
111
112--print @query
113
114
115EXECUTE sp_executesql @query
116RETURN
117
118END
119GO
120
121SET ANSI_NULLS OFF
122GO
123SET QUOTED_IDENTIFIER OFF
124GO
125
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.