| 1 | -- =============================================
|
|---|
| 2 | -- Create basic stored procedure template
|
|---|
| 3 | -- =============================================
|
|---|
| 4 |
|
|---|
| 5 | -- Drop stored procedure if it already exists
|
|---|
| 6 | IF 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
|
|---|
| 13 | GO
|
|---|
| 14 |
|
|---|
| 15 | CREATE PROCEDURE dbo.sp_adMotoRaportProwizja
|
|---|
| 16 | @rok int,
|
|---|
| 17 | @miesiac int,
|
|---|
| 18 | @tytul nvarchar(100)
|
|---|
| 19 | AS
|
|---|
| 20 |
|
|---|
| 21 | DECLARE @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 | )
|
|---|
| 33 | DECLARE @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 |
|
|---|
| 46 | INSERT INTO @Wplywy
|
|---|
| 47 | SELECT
|
|---|
| 48 | ID_FAKTURY AS IdFaktury,
|
|---|
| 49 | NumerFaktury,
|
|---|
| 50 | LOWER(Symbol) AS Agent,
|
|---|
| 51 | NR_FK AS SymbolFaktury,
|
|---|
| 52 | dataWplaty AS DataWplaty,
|
|---|
| 53 | NETTO AS Netto,
|
|---|
| 54 | DATA_WYSTAWIENIA AS DataFaktury,
|
|---|
| 55 | ROUND(NETTO * procentProwizji, 2) AS Prowizja,
|
|---|
| 56 | Agencja
|
|---|
| 57 | FROM WplywyByTytul
|
|---|
| 58 | WHERE (YEAR(dataWplaty) = @rok)
|
|---|
| 59 | AND (MONTH(dataWplaty) = @miesiac)
|
|---|
| 60 | AND (Tytul IN (@tytul))
|
|---|
| 61 |
|
|---|
| 62 | UPDATE @Wplywy
|
|---|
| 63 | SET Netto = NULL
|
|---|
| 64 | WHERE MONTH(DataFaktury)<@miesiac
|
|---|
| 65 |
|
|---|
| 66 | INSERT INTO @Sprzedaz
|
|---|
| 67 | SELECT
|
|---|
| 68 | Id AS IdFaktury,
|
|---|
| 69 | Numer AS NumerFaktury,
|
|---|
| 70 | Agent,
|
|---|
| 71 | NumerFaktury AS SymbolFaktury,
|
|---|
| 72 | NULL AS DataWplaty,
|
|---|
| 73 | Netto,
|
|---|
| 74 | Data AS DataFaktury,
|
|---|
| 75 | NULL AS Prowizja,
|
|---|
| 76 | Agencja
|
|---|
| 77 | FROM FakturyNettoByTytul
|
|---|
| 78 | WHERE
|
|---|
| 79 | (YEAR(Data) = @rok)
|
|---|
| 80 | AND (MONTH(Data) in (@miesiac))
|
|---|
| 81 | AND (Tytul in (@tytul))
|
|---|
| 82 |
|
|---|
| 83 | SELECT * FROM @Wplywy
|
|---|
| 84 | UNION
|
|---|
| 85 | SELECT * FROM @Sprzedaz
|
|---|
| 86 | WHERE IdFaktury NOT IN (SELECT IdFaktury FROM @Wplywy)
|
|---|
| 87 | ORDER BY DataWplaty, Agent, NumerFaktury
|
|---|
| 88 |
|
|---|
| 89 |
|
|---|
| 90 | GO
|
|---|
| 91 |
|
|---|
| 92 | -- =============================================
|
|---|
| 93 | -- Example to execute the stored procedure
|
|---|
| 94 | -- =============================================
|
|---|
| 95 | EXECUTE dbo.sp_adMotoRaportProwizja 2009, 1, 'adMot'
|
|---|
| 96 | GO
|
|---|