root/trunk/SQL/StoredProcedures/sp_adMotoRaportProwizja.txt @ 352

Wersja 352, 2.0 KB (wprowadzona przez marek, 17 years temu)

re #92

Line 
1-- =============================================
2-- Create basic stored procedure template
3-- =============================================
4
5-- Drop stored procedure if it already exists
6IF EXISTS (
7  SELECT *
8    FROM INFORMATION_SCHEMA.ROUTINES
9   WHERE SPECIFIC_SCHEMA = N'dbo'
10     AND SPECIFIC_NAME = N'sp_adMotoRaportProwizja'
11)
12   DROP PROCEDURE dbo.sp_adMotoRaportProwizja
13GO
14
15CREATE PROCEDURE dbo.sp_adMotoRaportProwizja
16        @rok int,
17        @miesiac int,
18        @tytul nvarchar(100)
19AS
20
21DECLARE @Wplywy TABLE
22(
23        IdFaktury INT,
24        NumerFaktury INT,
25        Agent nvarchar(100),
26        SymbolFaktury nvarchar(100),
27        DataWplaty DATETIME,
28        Netto MONEY,
29        DataFaktury DATETIME,
30        Prowizja MONEY,
31        Agencja nvarchar(100)
32)
33DECLARE @Sprzedaz TABLE
34(
35        IdFaktury INT,
36        NumerFaktury INT,
37        Agent nvarchar(100),
38        SymbolFaktury nvarchar(100),
39        DataWplaty DATETIME,
40        Netto MONEY,
41        DataFaktury DATETIME,
42        Prowizja MONEY,
43        Agencja nvarchar(100)
44)
45
46INSERT INTO @Wplywy
47SELECT
48ID_FAKTURY AS IdFaktury,
49NumerFaktury,
50LOWER(Symbol) AS Agent,
51NR_FK AS SymbolFaktury,
52dataWplaty AS DataWplaty,
53NETTO AS Netto,
54DATA_WYSTAWIENIA AS DataFaktury,
55ROUND(NETTO * procentProwizji, 2) AS Prowizja,
56Agencja
57FROM WplywyByTytul
58WHERE (YEAR(dataWplaty) = @rok)
59AND (MONTH(dataWplaty) = @miesiac)
60AND (Tytul IN (@tytul))
61
62UPDATE @Wplywy
63SET Netto = NULL
64WHERE MONTH(DataFaktury)<@miesiac
65
66INSERT INTO @Sprzedaz
67SELECT
68Id AS IdFaktury,
69Numer AS NumerFaktury,
70Agent,
71NumerFaktury AS SymbolFaktury,
72NULL AS DataWplaty,
73Netto,
74Data AS DataFaktury,
75NULL AS Prowizja,
76Agencja
77FROM FakturyNettoByTytul
78WHERE
79(YEAR(Data) = @rok)
80AND (MONTH(Data) in (@miesiac))
81AND (Tytul in (@tytul))
82
83SELECT * FROM @Wplywy
84UNION
85SELECT * FROM @Sprzedaz
86WHERE IdFaktury NOT IN (SELECT IdFaktury FROM @Wplywy)
87ORDER BY DataWplaty, Agent, NumerFaktury
88
89       
90GO
91
92-- =============================================
93-- Example to execute the stored procedure
94-- =============================================
95EXECUTE dbo.sp_adMotoRaportProwizja 2009, 1, 'adMot'
96GO
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.