Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. --Zad 1 ROLLUP
  2.  
  3. SELECT
  4. P.FirstName+' '+P.LastName "Nazwa",
  5. YEAR(OrderDate) "Rok",
  6. CONCAT('$', SUM(SubTotal)) "Suma wydatkow"
  7. FROM
  8. Sales.SalesOrderHeader SOH
  9. JOIN
  10. Person.Person P ON SOH.CustomerID = P.BusinessEntityID
  11. GROUP BY ROLLUP(P.FirstName+' '+P.LastName, YEAR(OrderDate))
  12. ORDER BY 1;
  13.  
  14.  
  15. --Zad 1 CUBE
  16. SELECT
  17. MIN(P.FirstName+' '+P.LastName) "Nazwa",
  18. YEAR(OrderDate) "Rok",
  19. CONCAT('$', SUM(SubTotal)) "Suma wydatkow"
  20. FROM
  21. Sales.SalesOrderHeader SOH
  22. JOIN
  23. Person.Person P ON SOH.CustomerID = P.BusinessEntityID
  24. GROUP BY CUBE(YEAR(OrderDate), P.FirstName+' '+P.LastName)
  25. ORDER BY 1;
  26.  
  27.  
  28. --Zad 1 GROUPING SET
  29. SELECT
  30. P.FirstName+' '+P.LastName "Nazwa",
  31. YEAR(OrderDate) "Rok",
  32. CONCAT('$', SUM(SubTotal)) "Suma wydatkow"
  33. FROM
  34. Sales.SalesOrderHeader SOH
  35. JOIN
  36. Person.Person P ON SOH.CustomerID = P.BusinessEntityID
  37. GROUP BY GROUPING SETS((P.FirstName+' '+P.LastName, YEAR(OrderDate)), (P.FirstName+' '+P.LastName))
  38. ORDER BY 1;
  39.  
  40. --Zad 2 ROLL UP
  41. SELECT
  42. MIN(PC.Name) "Kategoria",
  43. P.Name "Produkt",
  44. YEAR(SOH.OrderDate) "Rok",
  45. CONCAT('$', SUM(SOD.UnitPrice * SOD.UnitPriceDiscount))"Kwota"
  46. FROM
  47. Sales.SalesOrderHeader SOH
  48. JOIN
  49. Sales.SalesOrderDetail SOD
  50. ON SOH.SalesOrderID = SOD.SalesOrderID
  51. JOIN
  52. Production.Product P
  53. ON SOD.ProductID = P.ProductID
  54. JOIN
  55. Production.ProductSubcategory PS
  56. ON P.ProductSubcategoryID = PS.ProductSubcategoryID
  57. JOIN
  58. Production.ProductCategory PC
  59. ON PS.ProductCategoryID = PC.ProductCategoryID
  60. GROUP BY ROLLUP(P.Name, YEAR(SOH.OrderDate));
  61.  
  62. --Zad 2 CUBE
  63. SELECT
  64. PC.Name "Kategoria",
  65. P.Name "Produkt",
  66. YEAR(SOH.OrderDate) "Rok",
  67. CONCAT('$', SUM(SOD.UnitPrice * SOD.UnitPriceDiscount))"Kwota"
  68. FROM
  69. Sales.SalesOrderHeader SOH
  70. JOIN
  71. Sales.SalesOrderDetail SOD
  72. ON SOH.SalesOrderID = SOD.SalesOrderID
  73. JOIN
  74. Production.Product P
  75. ON SOD.ProductID = P.ProductID
  76. JOIN
  77. Production.ProductSubcategory PS
  78. ON P.ProductSubcategoryID = PS.ProductSubcategoryID
  79. JOIN
  80. Production.ProductCategory PC
  81. ON PS.ProductCategoryID = PC.ProductCategoryID
  82. GROUP BY CUBE(YEAR(SOH.OrderDate), P.Name, PC.Name)
  83. ORDER BY 2;
  84.  
  85. --Zad 2 GROUPING SETS
  86. SELECT
  87. MIN(PC.Name) "Kategoria",
  88. P.Name "Produkt",
  89. YEAR(SOH.OrderDate) "Rok",
  90. CONCAT('$', SUM(SOD.UnitPrice * SOD.UnitPriceDiscount))"Kwota"
  91. FROM
  92. Sales.SalesOrderHeader SOH
  93. JOIN
  94. Sales.SalesOrderDetail SOD
  95. ON SOH.SalesOrderID = SOD.SalesOrderID
  96. JOIN
  97. Production.Product P
  98. ON SOD.ProductID = P.ProductID
  99. JOIN
  100. Production.ProductSubcategory PS
  101. ON P.ProductSubcategoryID = PS.ProductSubcategoryID
  102. JOIN
  103. Production.ProductCategory PC
  104. ON PS.ProductCategoryID = PC.ProductCategoryID
  105. GROUP BY GROUPING SETS((P.Name), (P.Name, YEAR(SOH.OrderDate)))
  106. ORDER BY 2;
  107.  
  108. --Zad 3
  109. SELECT DISTINCT
  110. PC.Name "Nazwa",
  111. YEAR(SOH.OrderDate) "Rok",
  112. SUM(SOH.SubTotal) OVER(PARTITION BY YEAR(SOH.OrderDate)) / (SUM(SOH.SubTotal) OVER ()) * 100 "Procent"
  113. FROM
  114. Sales.SalesOrderHeader SOH
  115. JOIN
  116. Sales.SalesOrderDetail SOD
  117. ON SOH.SalesOrderID = SOD.SalesOrderID
  118. JOIN
  119. Production.Product P
  120. ON SOD.ProductID = P.ProductID
  121. JOIN
  122. Production.ProductSubcategory PS
  123. ON P.ProductSubcategoryID = PS.ProductSubcategoryID
  124. JOIN
  125. Production.ProductCategory PC
  126. ON PS.ProductCategoryID = PC.ProductCategoryID
  127. WHERE PC.Name = 'Bikes'
  128. ORDER BY 2;
  129.  
  130. --Zad 4
  131. SELECT DISTINCT
  132. CustomerID "Klient",
  133. YEAR(OrderDate) "Rok",
  134. COUNT(OrderDate) OVER(PARTITION BY CustomerID ORDER BY YEAR(OrderDate)) "Liczba zamówień narastająco"
  135. FROM
  136. Sales.SalesOrderHeader
  137. ORDER BY
  138. 1, 3;
  139.  
  140. --Zad 5
  141. SELECT
  142. P.FirstName+' '+P.LastName "Imię i nazwisko",
  143. YEAR(SOH.OrderDate) "Rok",
  144. MONTH(SOH.OrderDate) "Miesiąc",
  145. SUM(COUNT(SOH.SalesOrderID)) OVER(PARTITION BY SOH.SalesPersonID, YEAR(SOH.OrderDate)) "W roku",
  146. SUM(COUNT(SOH.SalesOrderID)) OVER(PARTITION BY SOH.SalesPersonID, YEAR(SOH.OrderDate) ORDER BY MONTH(SOH.OrderDate)) "W roku narastająco",
  147. SUM(COUNT(SOH.SalesOrderID)) OVER(PARTITION BY SOH.SalesPersonID, YEAR(SOH.OrderDate) ORDER BY MONTH(SOH.OrderDate) ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) "Obecny i poprzedni miesiąc"
  148. FROM
  149. Sales.SalesOrderHeader SOH
  150. JOIN
  151. Person.Person P ON SOH.SalesPersonID = P.BusinessEntityID
  152. GROUP BY
  153. P.FirstName+' '+P.LastName, SOH.SalesPersonID,YEAR(SOH.OrderDate) , MONTH(SOH.OrderDate)
  154. ORDER BY 1, 2, 3;
  155.  
  156. --Zad 6
  157.  
  158. WITH MaxKategorie
  159. AS
  160. (
  161. SELECT
  162. PC.Name "Kategoria",
  163. PS.Name "Podkategoria",
  164. MAX(SOD.UnitPrice) "MaxCena"
  165. FROM
  166. Sales.SalesOrderDetail SOD
  167. JOIN
  168. Production.Product P
  169. ON SOD.ProductID = P.ProductID
  170. JOIN
  171. Production.ProductSubcategory PS
  172. ON P.ProductSubcategoryID = PS.ProductSubcategoryID
  173. JOIN
  174. Production.ProductCategory PC
  175. ON PS.ProductCategoryID = PC.ProductCategoryID
  176. GROUP BY
  177. PC.Name, PS.Name
  178. )
  179. SELECT DISTINCT
  180. MK.Kategoria "Kategoria",
  181. SUM(MAX(MK.MaxCena)) OVER(PARTITION BY MK.Kategoria) "Suma"
  182. FROM
  183. MaxKategorie MK
  184. GROUP BY
  185. MK.Kategoria, MK.Podkategoria;
  186.  
  187. --LUB
  188. SELECT DISTINCT
  189. PC.Name "Kategoria",
  190. SUM(MAX(SOD.UnitPrice)) OVER(PARTITION BY PC.ProductCategoryID) "Suma"
  191. FROM
  192. Sales.SalesOrderDetail SOD
  193. JOIN
  194. Production.Product P
  195. ON SOD.ProductID = P.ProductID
  196. JOIN
  197. Production.ProductSubcategory PS
  198. ON P.ProductSubcategoryID = PS.ProductSubcategoryID
  199. JOIN
  200. Production.ProductCategory PC
  201. ON PS.ProductCategoryID = PC.ProductCategoryID
  202. GROUP BY PC.Name, PC.ProductCategoryID, PS.ProductSubcategoryID;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement