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

Wersja 339, 3.6 KB (wprowadzona przez marek, 17 years temu)

fixes #89

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
32
33
34set @query = '
35SELECT TOP 1000
36--R.ReklamaID
37R.*,
38O.wyd_od AS OD,
39O.wyd_do AS DO,
40DATEPART(year, NR.DATA_W),
41DATEPART(month, NR.DATA_W),
42NR.DATA_W AS ''1emisja'',
43A.Symbol AS agencja,
44(r.[CENA JEDN] - r.[RABAT WARTOŒÆ]) / r.SZER * r.WYS AS [CENA MODU£U],
45NM.CENA_MIN,
46NM.CENA,
47K.firstname,
48Z.idZamowienia 
49FROM dbo.AGENCI A2
50JOIN dbo.AGENCJE A ON A.Id_agencji = A2.ID_AGENCJI
51RIGHT JOIN REKLAMA R ON A2.Symbol = R.[SYMBOL AKWIZYTORA]
52LEFT JOIN dbo.VIEW_REKLAMA_OD_DO_DATY O ON R.ReklamaID = O.ReklamaId
53LEFT JOIN NR ON R.TYTU£ = NR.TYT AND O.wyd_od = NR.NRW -- OR O.wyd_do = NR.NRW)
54LEFT OUTER JOIN [NAZWY MODU£ÓW] NM ON r.MOD_TYP = NM.MOD_TYP
55LEFT OUTER JOIN dbo.KLIENCI AS K ON R.customerId=K.CustomerId
56LEFT OUTER JOIN dbo.Zamowienia AS Z ON R.idZamowienia=Z.idZamowienia
57where 1=1 and (r.SZER * r.WYS)<>0 '
58
59if NOT (@agencja IS NULL)
60SET @query = @query + ' AND A.Symbol=''' + @agencja + ''' '
61
62if NOT (@agent IS NULL)
63SET @query = @query + ' AND [symbol akwizytora] like ''%' + @agent + '%'' '
64
65if NOT (@reklama IS NULL)
66SET @query = @query + ' AND r.[id reklamy] like ''%' + @reklama + '%'' '
67
68if NOT (@rok IS NULL)
69SET @query = @query + ' AND DATEPART(year,NR.DATA_W)=' + CAST(@rok as nvarchar) + ' '
70
71if NOT (@ms IS NULL)
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 (@promocja IS NULL)
84SET @query = @query + ' AND R.[Promocja]=' + CAST(@promocja as nvarchar) + ' '
85
86if (NOT (@fw IS NULL) AND NOT(@ms IS NULL) AND NOT(@rok 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 nr N on u.[nr wydania]=N.nrw and N.TYT=R.[Tytu³] '
93SET @query = @query + ' WHERE DATEPART(MONTH, N.Data_W)=' + CAST(@ms as nvarchar)
94SET @query = @query + ' AND DATEPART(YEAR, N.Data_W)=' + CAST(@rok as nvarchar)
95SET @query = @query + ' AND U.Zafakturowana=' + CAST(@fw as nvarchar) + ') '
96END
97
98IF NOT (@zd IS NULL)
99SET @query = @query + ' AND R.[Zatwierdzono do druku]=' + CAST(@zd as nvarchar) + ' '
100
101IF NOT (@kz IS NULL)
102SET @query = @query + ' AND R.[Kier_zatwierdzil]=' + CAST(@kz as nvarchar) + ' '
103
104IF NOT (@wy IS NULL)
105SET @query = @query + ' AND R.[wyroznienie]=' + CAST(@wy as nvarchar) + ' '
106
107IF NOT (@bz IS NULL)
108BEGIN
109IF @bz=1
110SET @query = @query + ' AND R.idZamowienia IS NULL '
111ELSE
112SET @query = @query + ' AND R.idZamowienia IS NOT NULL '
113END
114
115
116--print @query
117
118
119EXECUTE sp_executesql @query
120RETURN
121
122END
123GO
124
125SET ANSI_NULLS OFF
126GO
127SET QUOTED_IDENTIFIER OFF
128GO
129
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.