Index: trunk/RaportySQL/SprzedazReklam2009.rdl
===================================================================
--- trunk/RaportySQL/SprzedazReklam2009.rdl (revision 466)
+++ trunk/RaportySQL/SprzedazReklam2009.rdl (revision 521)
@@ -142,9 +142,9 @@
         </Field>
         <Field Name="ROK">
-          <DataField>ROK</DataField>
+          <DataField>Rok</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
         <Field Name="MS">
-          <DataField>MS</DataField>
+          <DataField>Ms</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
@@ -154,21 +154,21 @@
         </Field>
         <Field Name="NETTO">
-          <DataField>NETTO</DataField>
+          <DataField>Netto</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="VAT">
-          <DataField>VAT</DataField>
+          <DataField>Vat</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="BRUTTO">
-          <DataField>BRUTTO</DataField>
+          <DataField>Brutto</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="SUMAZAPLAT">
-          <DataField>SUMAZAPLAT</DataField>
+          <DataField>SumaZaplat</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="ilosc">
-          <DataField>ilosc</DataField>
+          <DataField>Ilosc</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
@@ -185,5 +185,58 @@
       <Query>
         <DataSourceName>BAZA_REKLAM</DataSourceName>
-        <CommandText>SELECT Agencja, Agent, ROK, MS, NrRoz, 
+        <CommandText>DECLARE @Korekty TABLE
+(
+	Agencja nvarchar(50),
+	Agent nvarchar(100),
+	Rok int,
+	Ms int,
+	NrRoz nvarchar(8),
+	Netto money,
+	Vat money,
+	Brutto money,
+	SumaZaplat money,
+	Ilosc int
+)
+INSERT INTO @Korekty
+SELECT Agencja, Agent, ROK, MS, NrRoz, 
+SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc
+FROM 
+(
+	SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, 
+	YEAR(Korekta.DATA_SPRZEDAZY) AS ROK, MONTH(Korekta.DATA_SPRZEDAZY) AS MS, Korekta.NUMER_ROZ AS NrRoz, 
+	NETTO = (Korekta.Netto * -1),
+	VAT = ((Korekta.Vat) * -1),
+	BRUTTO = ((Korekta.Netto * (1 + Korekta.S_Vat)) * -1),
+	0 AS SZap
+	FROM VIEW_KOREKTY AS Korekta 
+	INNER JOIN AGENCI ON Korekta.NUMER_ROZ = AGENCI.F_ROZ 
+	INNER JOIN AGENCJE ON Korekta.Id_agencji = AGENCJE.Id_agencji
+	WHERE 
+	YEAR(Korekta.DATA_SPRZEDAZY)=@rok AND MONTH(Korekta.DATA_SPRZEDAZY)=@miesiac
+	AND (AGENCJE.Id_agencji&lt;&gt;4 OR Korekta.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji &lt;&gt;6 OR Korekta.NUMER_ROZ ='POZ')
+	AND Korekta.SystemKsiegowyId IN (@systemKsiegowy)
+	GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, Korekta.ID_FAKTURY, Korekta.DATA_SPRZEDAZY, 
+	YEAR(Korekta.DATA_SPRZEDAZY), Korekta.NUMER_ROZ, 
+	Korekta.Netto, Korekta.Vat, Korekta.Brutto, Korekta.S_Vat
+) T
+GROUP BY Agencja, Agent, ROK, MS, NrRoz
+
+
+DECLARE @Faktury TABLE
+(
+	Agencja nvarchar(50),
+	Agent nvarchar(100),
+	Rok int,
+	Ms int,
+	NrRoz nvarchar(8),
+	Netto money,
+	Vat money,
+	Brutto money,
+	SumaZaplat money,
+	Ilosc int
+)
+INSERT INTO @Faktury
+-- sprzedaz - faktury bez korekt
+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, 
 SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc
 FROM 
@@ -191,21 +244,7 @@
 	SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, 
 	YEAR(FAKTURY.DATA_SPRZEDAZY) AS ROK, MONTH(FAKTURY.DATA_SPRZEDAZY) AS MS, FAKTURY.NUMER_ROZ AS NrRoz, 
-	NETTO = CASE 
-				WHEN Korekta.Netto IS NULL THEN SUM(FAKTURA_DETAILS.NETTO)
-				ELSE Korekta.Netto
-			END,
-	VAT = CASE 
-				WHEN Korekta.Vat IS NULL THEN SUM(FAKTURA_DETAILS.VAT)
-				ELSE Korekta.Vat
-			END,
-	BRUTTO = CASE 
-				WHEN Korekta.Brutto IS NULL THEN SUM(FAKTURA_DETAILS.BRUTTO)
-				ELSE Korekta.Brutto
-			END,	
-
---	SUM(FAKTURA_DETAILS.NETTO) AS NETTO, 
---	SUM(FAKTURA_DETAILS.VAT) AS VAT, 
---	SUM(FAKTURA_DETAILS.BRUTTO) AS BRUTTO, 
-	
+	NETTO = SUM(FAKTURA_DETAILS.NETTO),
+	VAT = SUM(FAKTURA_DETAILS.NETTO * FAKTURA_DETAILS.S_VAT),
+	BRUTTO = SUM(FAKTURA_DETAILS.NETTO * (1 + FAKTURA_DETAILS.S_VAT)),	
 	FAKTURY.suma_zaplat AS SZap
 	FROM FAKTURY 
@@ -213,14 +252,24 @@
 	LEFT JOIN AGENCI ON FAKTURY.NUMER_ROZ = AGENCI.F_ROZ 
 	LEFT JOIN AGENCJE ON FAKTURY.ID_SPRZEDAWCY = AGENCJE.Id_agencji
-    LEFT OUTER JOIN dbo.VIEW_KOREKTY AS Korekta ON Korekta.idFakturyKorekta = FAKTURY.ID_FAKTURY
 	WHERE 
-	(YEAR(FAKTURY.DATA_SPRZEDAZY) =@rok) AND (MONTH(FAKTURY.DATA_SPRZEDAZY) = @miesiac) 
+	YEAR(FAKTURY.DATA_SPRZEDAZY)=@rok AND MONTH(FAKTURY.DATA_SPRZEDAZY)=@miesiac
+
 	AND (AGENCJE.Id_agencji&lt;&gt;4 OR FAKTURY.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji &lt;&gt;6 OR FAKTURY.NUMER_ROZ ='POZ')
 	AND FAKTURY.KOREKTA=0 AND FAKTURY.SystemKsiegowyId IN (@systemKsiegowy)
 	GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, FAKTURY.ID_FAKTURY, FAKTURY.DATA_SPRZEDAZY, 
-	YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat, FAKTURY.Korekta,
-	Korekta.Netto, Korekta.Vat, Korekta.Brutto
+	YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat, FAKTURY.Korekta
 ) T
 GROUP BY Agencja, Agent, ROK, MS, NrRoz
+--ORDER BY Agencja, Agent
+
+UPDATE F
+SET F.Netto=F.Netto+K.Netto, F.Vat=F.Vat+K.Vat, F.Brutto=F.Brutto+K.Brutto
+FROM @Faktury F, @Korekty K
+WHERE F.Agencja=K.Agencja AND F.Agent=K.Agent
+
+INSERT INTO @Faktury 
+SELECT * FROM @Korekty WHERE NrRoz NOT IN (SELECT NrRoz FROM @Faktury)
+
+SELECT * FROM @Faktury
 ORDER BY Agencja, Agent</CommandText>
         <QueryParameters>
@@ -300,9 +349,9 @@
         </Field>
         <Field Name="ROK">
-          <DataField>ROK</DataField>
+          <DataField>Rok</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
         <Field Name="MS">
-          <DataField>MS</DataField>
+          <DataField>Ms</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
@@ -312,21 +361,21 @@
         </Field>
         <Field Name="NETTO">
-          <DataField>NETTO</DataField>
+          <DataField>Netto</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="VAT">
-          <DataField>VAT</DataField>
+          <DataField>Vat</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="BRUTTO">
-          <DataField>BRUTTO</DataField>
+          <DataField>Brutto</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="SUMAZAPLAT">
-          <DataField>SUMAZAPLAT</DataField>
+          <DataField>SumaZaplat</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="ilosc">
-          <DataField>ilosc</DataField>
+          <DataField>Ilosc</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
@@ -343,18 +392,92 @@
       <Query>
         <DataSourceName>BAZA_REKLAM</DataSourceName>
-        <CommandText>SELECT        Agencja, Agent, ROK, MS, NrRoz, SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) 
-                         AS ilosc
-FROM            (SELECT        AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, YEAR(FAKTURY.DATA_SPRZEDAZY) AS ROK, 
-                                                    MONTH(FAKTURY.DATA_SPRZEDAZY) AS MS, FAKTURY.NUMER_ROZ AS NrRoz, SUM(FAKTURA_DETAILS.NETTO) AS NETTO, 
-                                                    SUM(FAKTURA_DETAILS.VAT) AS VAT, SUM(FAKTURA_DETAILS.BRUTTO) AS BRUTTO, FAKTURY.suma_zaplat AS SZap
-                          FROM            FAKTURY INNER JOIN
-                                                    FAKTURA_DETAILS ON FAKTURY.ID_FAKTURY = FAKTURA_DETAILS.ID_FAKTURY INNER JOIN
-                                                    AGENCI ON FAKTURY.NUMER_ROZ = AGENCI.F_ROZ INNER JOIN
-                                                    AGENCJE ON AGENCI.ID_AGENCJI = AGENCJE.Id_agencji
-WHERE FAKTURY.SystemKsiegowyId IN (@systemKsiegowy)
-                          GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, FAKTURY.ID_FAKTURY, FAKTURY.DATA_SPRZEDAZY, 
-                                                    YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat
-                          HAVING         (YEAR(FAKTURY.DATA_SPRZEDAZY) = @rok) AND (MONTH(FAKTURY.DATA_SPRZEDAZY) = @miesiac) and  SUM(FAKTURA_DETAILS.VAT)=0 ) AS sprzedaz
+        <CommandText>DECLARE @Korekty TABLE
+(
+	Agencja nvarchar(50),
+	Agent nvarchar(100),
+	Rok int,
+	Ms int,
+	NrRoz nvarchar(8),
+	Netto money,
+	Vat money,
+	Brutto money,
+	SumaZaplat money,
+	Ilosc int
+)
+INSERT INTO @Korekty
+SELECT Agencja, Agent, ROK, MS, NrRoz, 
+SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc
+FROM 
+(
+	SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, 
+	YEAR(Korekta.DATA_SPRZEDAZY) AS ROK, MONTH(Korekta.DATA_SPRZEDAZY) AS MS, Korekta.NUMER_ROZ AS NrRoz, 
+	NETTO = (Korekta.Netto * -1),
+	VAT = ((Korekta.Vat) * -1),
+	BRUTTO = ((Korekta.Netto * (1 + Korekta.S_Vat)) * -1),
+	0 AS SZap
+	FROM VIEW_KOREKTY AS Korekta 
+	INNER JOIN AGENCI ON Korekta.NUMER_ROZ = AGENCI.F_ROZ 
+	INNER JOIN AGENCJE ON Korekta.Id_agencji = AGENCJE.Id_agencji
+	WHERE 
+                Korekta.S_Vat=0 
+	AND YEAR(Korekta.DATA_SPRZEDAZY)=@rok AND MONTH(Korekta.DATA_SPRZEDAZY)=@miesiac
+	AND (AGENCJE.Id_agencji&lt;&gt;4 OR Korekta.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji &lt;&gt;6 OR Korekta.NUMER_ROZ ='POZ')
+	AND Korekta.SystemKsiegowyId IN (@systemKsiegowy)
+	GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, Korekta.ID_FAKTURY, Korekta.DATA_SPRZEDAZY, 
+	YEAR(Korekta.DATA_SPRZEDAZY), Korekta.NUMER_ROZ, 
+	Korekta.Netto, Korekta.Vat, Korekta.Brutto, Korekta.S_Vat
+) T
 GROUP BY Agencja, Agent, ROK, MS, NrRoz
+
+
+DECLARE @Faktury TABLE
+(
+	Agencja nvarchar(50),
+	Agent nvarchar(100),
+	Rok int,
+	Ms int,
+	NrRoz nvarchar(8),
+	Netto money,
+	Vat money,
+	Brutto money,
+	SumaZaplat money,
+	Ilosc int
+)
+INSERT INTO @Faktury
+-- sprzedaz - faktury bez korekt
+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, 
+SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc
+FROM 
+(
+	SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, 
+	YEAR(FAKTURY.DATA_SPRZEDAZY) AS ROK, MONTH(FAKTURY.DATA_SPRZEDAZY) AS MS, FAKTURY.NUMER_ROZ AS NrRoz, 
+	NETTO = SUM(FAKTURA_DETAILS.NETTO),
+	VAT = SUM(FAKTURA_DETAILS.NETTO * FAKTURA_DETAILS.S_VAT),
+	BRUTTO = SUM(FAKTURA_DETAILS.NETTO * (1 + FAKTURA_DETAILS.S_VAT)),	
+	FAKTURY.suma_zaplat AS SZap
+	FROM FAKTURY 
+	INNER JOIN FAKTURA_DETAILS ON FAKTURY.ID_FAKTURY = FAKTURA_DETAILS.ID_FAKTURY 
+	LEFT JOIN AGENCI ON FAKTURY.NUMER_ROZ = AGENCI.F_ROZ 
+	LEFT JOIN AGENCJE ON FAKTURY.ID_SPRZEDAWCY = AGENCJE.Id_agencji
+	WHERE 
+                FAKTURA_DETAILS.S_Vat=0 
+	AND YEAR(FAKTURY.DATA_SPRZEDAZY)=@rok AND MONTH(FAKTURY.DATA_SPRZEDAZY)=@miesiac
+	AND (AGENCJE.Id_agencji&lt;&gt;4 OR FAKTURY.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji &lt;&gt;6 OR FAKTURY.NUMER_ROZ ='POZ')
+	AND FAKTURY.KOREKTA=0 AND FAKTURY.SystemKsiegowyId IN (@systemKsiegowy)
+	GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, FAKTURY.ID_FAKTURY, FAKTURY.DATA_SPRZEDAZY, 
+	YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat, FAKTURY.Korekta
+) T
+GROUP BY Agencja, Agent, ROK, MS, NrRoz
+--ORDER BY Agencja, Agent
+
+UPDATE F
+SET F.Netto=F.Netto+K.Netto, F.Vat=F.Vat+K.Vat, F.Brutto=F.Brutto+K.Brutto
+FROM @Faktury F, @Korekty K
+WHERE F.Agencja=K.Agencja AND F.Agent=K.Agent
+
+INSERT INTO @Faktury 
+SELECT * FROM @Korekty WHERE NrRoz NOT IN (SELECT NrRoz FROM @Faktury)
+
+SELECT * FROM @Faktury
 ORDER BY Agencja, Agent</CommandText>
         <QueryParameters>
@@ -383,9 +506,9 @@
         </Field>
         <Field Name="ROK">
-          <DataField>ROK</DataField>
+          <DataField>Rok</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
         <Field Name="MS">
-          <DataField>MS</DataField>
+          <DataField>Ms</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
@@ -395,21 +518,21 @@
         </Field>
         <Field Name="NETTO">
-          <DataField>NETTO</DataField>
+          <DataField>Netto</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="VAT">
-          <DataField>VAT</DataField>
+          <DataField>Vat</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="BRUTTO">
-          <DataField>BRUTTO</DataField>
+          <DataField>Brutto</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="SUMAZAPLAT">
-          <DataField>SUMAZAPLAT</DataField>
+          <DataField>SumaZaplat</DataField>
           <rd:TypeName>System.Decimal</rd:TypeName>
         </Field>
         <Field Name="ilosc">
-          <DataField>ilosc</DataField>
+          <DataField>Ilosc</DataField>
           <rd:TypeName>System.Int32</rd:TypeName>
         </Field>
@@ -426,35 +549,92 @@
       <Query>
         <DataSourceName>BAZA_REKLAM</DataSourceName>
-        <CommandText>SELECT Agencja, Agent, ROK, MS, NrRoz, 
+        <CommandText>DECLARE @Korekty TABLE
+(
+	Agencja nvarchar(50),
+	Agent nvarchar(100),
+	Rok int,
+	Ms int,
+	NrRoz nvarchar(8),
+	Netto money,
+	Vat money,
+	Brutto money,
+	SumaZaplat money,
+	Ilosc int
+)
+INSERT INTO @Korekty
+SELECT Agencja, Agent, ROK, MS, NrRoz, 
 SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc
 FROM 
 (
-	SELECT  AGENCJE.Symbol AS Agencja,  AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, YEAR(FAKTURY.DATA_SPRZEDAZY) AS ROK, 
-	MONTH(FAKTURY.DATA_SPRZEDAZY) AS MS, FAKTURY.NUMER_ROZ AS NrRoz,
-	NETTO = CASE 
-				WHEN Korekta.Netto IS NULL THEN SUM(FAKTURA_DETAILS.NETTO)
-				ELSE Korekta.Netto
-			END,
-	VAT = CASE 
-				WHEN Korekta.Vat IS NULL THEN SUM(FAKTURA_DETAILS.VAT)
-				ELSE Korekta.Vat
-			END,
-	BRUTTO = CASE 
-				WHEN Korekta.Brutto IS NULL THEN SUM(FAKTURA_DETAILS.BRUTTO)
-				ELSE Korekta.Brutto
-			END,
+	SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, 
+	YEAR(Korekta.DATA_SPRZEDAZY) AS ROK, MONTH(Korekta.DATA_SPRZEDAZY) AS MS, Korekta.NUMER_ROZ AS NrRoz, 
+	NETTO = (Korekta.Netto * -1),
+	VAT = ((Korekta.Vat) * -1),
+	BRUTTO = ((Korekta.Netto * (1 + Korekta.S_Vat)) * -1),
+	0 AS SZap
+	FROM VIEW_KOREKTY AS Korekta 
+	INNER JOIN AGENCI ON Korekta.NUMER_ROZ = AGENCI.F_ROZ 
+	INNER JOIN AGENCJE ON Korekta.Id_agencji = AGENCJE.Id_agencji
+	WHERE 
+                Korekta.S_Vat&lt;&gt;0 
+	AND YEAR(Korekta.DATA_SPRZEDAZY)=@rok AND MONTH(Korekta.DATA_SPRZEDAZY)=@miesiac
+	AND (AGENCJE.Id_agencji&lt;&gt;4 OR Korekta.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji &lt;&gt;6 OR Korekta.NUMER_ROZ ='POZ')
+	AND Korekta.SystemKsiegowyId IN (@systemKsiegowy)
+	GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, Korekta.ID_FAKTURY, Korekta.DATA_SPRZEDAZY, 
+	YEAR(Korekta.DATA_SPRZEDAZY), Korekta.NUMER_ROZ, 
+	Korekta.Netto, Korekta.Vat, Korekta.Brutto, Korekta.S_Vat
+) T
+GROUP BY Agencja, Agent, ROK, MS, NrRoz
+
+
+DECLARE @Faktury TABLE
+(
+	Agencja nvarchar(50),
+	Agent nvarchar(100),
+	Rok int,
+	Ms int,
+	NrRoz nvarchar(8),
+	Netto money,
+	Vat money,
+	Brutto money,
+	SumaZaplat money,
+	Ilosc int
+)
+INSERT INTO @Faktury
+-- sprzedaz - faktury bez korekt
+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, 
+SUM(NETTO) AS NETTO, SUM(VAT) AS VAT, SUM(BRUTTO) AS BRUTTO, SUM(SZap) AS SUMAZAPLAT, COUNT(NETTO) AS ilosc
+FROM 
+(
+	SELECT AGENCJE.Symbol AS Agencja, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ AS Agent, 
+	YEAR(FAKTURY.DATA_SPRZEDAZY) AS ROK, MONTH(FAKTURY.DATA_SPRZEDAZY) AS MS, FAKTURY.NUMER_ROZ AS NrRoz, 
+	NETTO = SUM(FAKTURA_DETAILS.NETTO),
+	VAT = SUM(FAKTURA_DETAILS.NETTO * FAKTURA_DETAILS.S_VAT),
+	BRUTTO = SUM(FAKTURA_DETAILS.NETTO * (1 + FAKTURA_DETAILS.S_VAT)),	
 	FAKTURY.suma_zaplat AS SZap
-		FROM FAKTURY 
-			INNER JOIN FAKTURA_DETAILS ON FAKTURY.ID_FAKTURY = FAKTURA_DETAILS.ID_FAKTURY 
-			INNER JOIN AGENCI ON FAKTURY.NUMER_ROZ = AGENCI.F_ROZ 
-			INNER JOIN AGENCJE ON AGENCI.ID_AGENCJI = AGENCJE.Id_agencji
-			LEFT OUTER JOIN dbo.VIEW_KOREKTY AS Korekta ON Korekta.idFakturyKorekta = FAKTURY.ID_FAKTURY
-WHERE FAKTURY.SystemKsiegowyId IN (@systemKsiegowy)
-		GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, FAKTURY.ID_FAKTURY, FAKTURY.DATA_SPRZEDAZY, 
-				 YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat,
-				 Korekta.Netto, Korekta.Vat, Korekta.Brutto
-		HAVING (YEAR(FAKTURY.DATA_SPRZEDAZY) = @rok) AND (MONTH(FAKTURY.DATA_SPRZEDAZY) = @miesiac) and  SUM(FAKTURA_DETAILS.VAT)&lt;&gt;0 
-) AS sprzedaz
+	FROM FAKTURY 
+	INNER JOIN FAKTURA_DETAILS ON FAKTURY.ID_FAKTURY = FAKTURA_DETAILS.ID_FAKTURY 
+	LEFT JOIN AGENCI ON FAKTURY.NUMER_ROZ = AGENCI.F_ROZ 
+	LEFT JOIN AGENCJE ON FAKTURY.ID_SPRZEDAWCY = AGENCJE.Id_agencji
+	WHERE 
+                FAKTURA_DETAILS.S_Vat&lt;&gt;0 
+	AND YEAR(FAKTURY.DATA_SPRZEDAZY)=@rok AND MONTH(FAKTURY.DATA_SPRZEDAZY)=@miesiac
+	AND (AGENCJE.Id_agencji&lt;&gt;4 OR FAKTURY.NUMER_ROZ ='KAT') AND (AGENCJE.Id_agencji &lt;&gt;6 OR FAKTURY.NUMER_ROZ ='POZ')
+	AND FAKTURY.KOREKTA=0 AND FAKTURY.SystemKsiegowyId IN (@systemKsiegowy)
+	GROUP BY AGENCJE.Symbol, AGENCI.Nazwisko + ' ' + AGENCI.ImiÄ, FAKTURY.ID_FAKTURY, FAKTURY.DATA_SPRZEDAZY, 
+	YEAR(FAKTURY.DATA_SPRZEDAZY), FAKTURY.NUMER_ROZ, FAKTURY.suma_zaplat, FAKTURY.Korekta
+) T
 GROUP BY Agencja, Agent, ROK, MS, NrRoz
+--ORDER BY Agencja, Agent
+
+UPDATE F
+SET F.Netto=F.Netto+K.Netto, F.Vat=F.Vat+K.Vat, F.Brutto=F.Brutto+K.Brutto
+FROM @Faktury F, @Korekty K
+WHERE F.Agencja=K.Agencja AND F.Agent=K.Agent
+
+INSERT INTO @Faktury 
+SELECT * FROM @Korekty WHERE NrRoz NOT IN (SELECT NrRoz FROM @Faktury)
+
+SELECT * FROM @Faktury
 ORDER BY Agencja, Agent</CommandText>
         <QueryParameters>
