Advertisement
Guest User

s

a guest
Jan 16th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.20 KB | None | 0 0
  1. ALTER PROCEDURE raport_miedzy_datami
  2. @rok DATE
  3. AS
  4. BEGIN
  5.         SELECT * FROM (
  6.                     SELECT TOP 1 *
  7.             FROM
  8.               ( SELECT ZamowieniaId,
  9.                        Nazwisko,
  10.                        MAX(Total) AS 'Suma Zamowienia'
  11.                FROM
  12.                  (SELECT P.ZamowieniaId,
  13.                          U.Nazwisko,
  14.                          SUM((P.Wartosc * P.Ilosc)) AS Total
  15.                   FROM PozycjeZamowieniaSet P
  16.                   JOIN TowarSet T ON P.TowarId = T.Id
  17.                   JOIN ZamowieniaSet Z ON P.ZamowieniaId = Z.Id
  18.                   JOIN UzytkownikSet U ON Z.UzytkownikId = U.Id
  19.                   WHERE P.ZamowieniaId IN
  20.                       (SELECT DISTINCT ZamowieniaId
  21.                        FROM ZamowieniaSet) AND LEFT(CONVERT(datetime2, Z.DATA) , 4) = LEFT(@rok,4)
  22.  
  23.                   GROUP BY P.ZamowieniaId,
  24.                            U.Nazwisko) m
  25.                GROUP BY ZamowieniaId,
  26.                         Nazwisko ) AS Maxi
  27.             ORDER BY [Suma Zamowienia] DESC
  28.  
  29.             UNION ALL
  30.  
  31.             SELECT TOP 1 *
  32.             FROM
  33.               ( SELECT ZamowieniaId,
  34.                        Nazwisko,
  35.                        MIN(Total) AS 'Suma Zamowienia'
  36.                FROM
  37.                  (SELECT P.ZamowieniaId,
  38.                          U.Nazwisko,
  39.                          SUM((P.Wartosc * P.Ilosc)) AS Total
  40.                   FROM PozycjeZamowieniaSet P
  41.                   JOIN TowarSet T ON P.TowarId = T.Id
  42.                   JOIN ZamowieniaSet Z ON P.ZamowieniaId = Z.Id
  43.                   JOIN UzytkownikSet U ON Z.UzytkownikId = U.Id
  44.                   WHERE P.ZamowieniaId IN
  45.                       (SELECT DISTINCT ZamowieniaId
  46.                        FROM ZamowieniaSet) AND LEFT(CONVERT(datetime2, Z.DATA) , 4) = LEFT(@rok,4)
  47.  
  48.                   GROUP BY P.ZamowieniaId,
  49.                            U.Nazwisko) m
  50.                GROUP BY ZamowieniaId,
  51.                         Nazwisko ) AS Mini
  52.             ORDER BY [Suma Zamowienia] ASC
  53.  
  54.             UNION ALL
  55.  
  56.             SELECT 0 AS A, 0 AS B, AVG(SA.Suma) AS Srednia
  57.             FROM
  58.               (SELECT SUM(Total) AS Suma
  59.                FROM
  60.                  (SELECT P.ZamowieniaId,
  61.                          U.Nazwisko,
  62.                          SUM((P.Wartosc * P.Ilosc)) AS Total
  63.                   FROM PozycjeZamowieniaSet P
  64.                   JOIN TowarSet T ON P.TowarId = T.Id
  65.                   JOIN ZamowieniaSet Z ON P.ZamowieniaId = Z.Id
  66.                   JOIN UzytkownikSet U ON Z.UzytkownikId = U.Id
  67.                   WHERE P.ZamowieniaId IN
  68.                       (SELECT DISTINCT ZamowieniaId
  69.                        FROM ZamowieniaSet) AND LEFT(CONVERT(datetime2, Z.DATA) , 4) = LEFT(@rok,4)
  70.                   GROUP BY P.ZamowieniaId,
  71.                            U.Nazwisko) m
  72.                GROUP BY ZamowieniaId,
  73.                         Nazwisko) AS SA
  74.                         ) AS Sred
  75. END
  76.  
  77. EXEC raport_miedzy_datami "2019"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement