- Data:
- 2009-04-02 14:12:10 (17 years ago)
- Pliki:
-
- 1 zmodyfikowane
-
trunk/SQL/Reports/SprzedazReklam2009.txt (zmodyfikowane) (3 diffs)
Legenda:
- Bez zmian
- Dodane
- Usunięte
-
trunk/SQL/Reports/SprzedazReklam2009.txt
r520 r521 1 DECLARE @Korekty TABLE 2 ( 3 Agencja nvarchar(50), 4 Agent nvarchar(100), 5 Rok int, 6 Ms int, 7 NrRoz nvarchar(8), 8 Netto money, 9 Vat money, 10 Brutto money, 11 SumaZaplat money, 12 Ilosc int 13 ) 14 INSERT INTO @Korekty 1 15 SELECT Agencja, Agent, ROK, MS, NrRoz, 2 16 SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc … … 4 18 ( 5 19 SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.Imiê AS Agent, 20 YEAR(Korekta.DATA_SPRZEDAZY) AS ROK, MONTH(Korekta.DATA_SPRZEDAZY) AS MS, Korekta.NUMER_ROZ AS NrRoz, 21 NETTO = (Korekta.Netto * -1), 22 VAT = ((Korekta.Vat) * -1), 23 BRUTTO = ((Korekta.Netto * (1 + Korekta.S_Vat)) * -1), 24 0 AS SZap 25 FROM VIEW_KOREKTY AS Korekta 26 INNER JOIN AGENCI ON Korekta.NUMER_ROZ = AGENCI.F_ROZ 27 INNER JOIN AGENCJE ON Korekta.Id_agencji = AGENCJE.Id_agencji 28 WHERE 29 YEAR(Korekta.DATA_SPRZEDAZY)=@rok AND MONTH(Korekta.DATA_SPRZEDAZY)=@miesiac 30 AND (AGENCJE.Id_agencji<>4 OR Korekta.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji <>6 OR Korekta.NUMER_ROZ ='POZ') 31 AND Korekta.SystemKsiegowyId IN (@systemKsiegowy) 32 GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.Imiê, Korekta.ID_FAKTURY, Korekta.DATA_SPRZEDAZY, 33 YEAR(Korekta.DATA_SPRZEDAZY), Korekta.NUMER_ROZ, 34 Korekta.Netto, Korekta.Vat, Korekta.Brutto, Korekta.S_Vat 35 ) T 36 GROUP BY Agencja, Agent, ROK, MS, NrRoz 37 38 39 DECLARE @Faktury TABLE 40 ( 41 Agencja nvarchar(50), 42 Agent nvarchar(100), 43 Rok int, 44 Ms int, 45 NrRoz nvarchar(8), 46 Netto money, 47 Vat money, 48 Brutto money, 49 SumaZaplat money, 50 Ilosc int 51 ) 52 INSERT INTO @Faktury 53 -- sprzedaz - faktury bez korekt 54 SELECT Agencja COLLATE SQL_Latin1_General_CP1250_CI_AS AS Agencja, Agent COLLATE SQL_Latin1_General_CP1250_CI_AS AS Agent, ROK, MS, NrRoz COLLATE SQL_Latin1_General_CP1250_CI_AS AS NrRoz, 55 SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc 56 FROM 57 ( 58 SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.Imiê AS Agent, 6 59 YEAR(FAKTURY.DATA_SPRZEDAZY) AS ROK, MONTH(FAKTURY.DATA_SPRZEDAZY) AS MS, FAKTURY.NUMER_ROZ AS NrRoz, 7 NETTO = CASE 8 WHEN Korekta.Netto IS NULL THEN SUM(FAKTURA_DETAILS.NETTO) 9 ELSE Korekta.Netto 10 END, 11 VAT = CASE 12 WHEN Korekta.Vat IS NULL THEN SUM(FAKTURA_DETAILS.VAT) 13 ELSE Korekta.Vat 14 END, 15 BRUTTO = CASE 16 WHEN Korekta.Brutto IS NULL THEN SUM(FAKTURA_DETAILS.BRUTTO) 17 ELSE Korekta.Brutto 18 END, 19 20 -- SUM(FAKTURA_DETAILS.NETTO) AS NETTO, 21 -- SUM(FAKTURA_DETAILS.VAT) AS VAT, 22 -- SUM(FAKTURA_DETAILS.BRUTTO) AS BRUTTO, 23 60 NETTO = SUM(FAKTURA_DETAILS.NETTO), 61 VAT = SUM(FAKTURA_DETAILS.NETTO * FAKTURA_DETAILS.S_VAT), 62 BRUTTO = SUM(FAKTURA_DETAILS.NETTO * (1 + FAKTURA_DETAILS.S_VAT)), 24 63 FAKTURY.suma_zaplat AS SZap 25 64 FROM FAKTURY … … 27 66 LEFT JOIN AGENCI ON FAKTURY.NUMER_ROZ = AGENCI.F_ROZ 28 67 LEFT JOIN AGENCJE ON FAKTURY.ID_SPRZEDAWCY = AGENCJE.Id_agencji 29 LEFT OUTER JOIN dbo.VIEW_KOREKTY AS Korekta ON Korekta.idFakturyKorekta = FAKTURY.ID_FAKTURY30 68 WHERE 31 (YEAR(FAKTURY.DATA_SPRZEDAZY) =@rok) AND (MONTH(FAKTURY.DATA_SPRZEDAZY) = @miesiac) 69 YEAR(FAKTURY.DATA_SPRZEDAZY)=@rok AND MONTH(FAKTURY.DATA_SPRZEDAZY)=@miesiac 70 32 71 AND (AGENCJE.Id_agencji<>4 OR FAKTURY.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji <>6 OR FAKTURY.NUMER_ROZ ='POZ') 33 72 AND FAKTURY.KOREKTA=0 AND FAKTURY.SystemKsiegowyId IN (@systemKsiegowy) 34 73 GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.Imiê, FAKTURY.ID_FAKTURY, FAKTURY.DATA_SPRZEDAZY, 35 YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat, FAKTURY.Korekta, 36 Korekta.Netto, Korekta.Vat, Korekta.Brutto 74 YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat, FAKTURY.Korekta 37 75 ) T 38 76 GROUP BY Agencja, Agent, ROK, MS, NrRoz 77 78 -- zrob update dla tych ktorzy mieli korekty 79 UPDATE F 80 SET F.Netto=F.Netto+K.Netto, F.Vat=F.Vat+K.Vat, F.Brutto=F.Brutto+K.Brutto 81 FROM @Faktury F, @Korekty K 82 WHERE F.Agencja=K.Agencja AND F.Agent=K.Agent 83 84 -- dodaj tych ktorzy mieli korekty a nie mieli zadnej sprzedazy 85 INSERT INTO @Faktury 86 SELECT * FROM @Korekty WHERE NrRoz NOT IN (SELECT NrRoz FROM @Faktury) 87 88 SELECT * FROM @Faktury 39 89 ORDER BY Agencja, Agent
