Advertisement
Guest User

kolosHD4K

a guest
Nov 15th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. --1
  2. --z grupy pierwszej
  3. SELECT c.CompanyName
  4. FROM Customers c
  5. WHERE c.CustomerID NOT IN (SELECT o.CustomerID FROM Orders o)
  6.  
  7. --z grupy drugiej
  8. select C.CompanyName
  9. from Customers C
  10. where not exists
  11. (select *
  12. from Products P
  13. where UnitPrice < 5
  14. and not exists
  15. (select * from
  16. Orders O, [Order Details] D
  17. where C.CustomerID = O.CustomerID
  18. and O.OrderID = D.OrderID
  19. and P.ProductID = D.ProductID))
  20.  
  21. --z grupy trzeciej
  22. select P.ProductName
  23. from Products P
  24. where not exists
  25. (select *
  26. from Employees E
  27. where not exists
  28. (select * from
  29. Orders O, [Order Details] D
  30. where E.EmployeeID = O.EmployeeID
  31. and O.OrderID = D.OrderID
  32. and P.ProductID = D.ProductID))
  33.  
  34. --2
  35. SELECT e.EmployeeID, ROUND(SUM(od.Quantity*od.UnitPrice*(1-od.Discount)),2) as 'Suma przychodow'
  36. FROM Employees e JOIN Orders o ON e.EmployeeID=o.EmployeeID
  37. JOIN [Order Details] od ON o.OrderID=od.OrderID
  38. GROUP BY e.EmployeeID
  39. HAVING COUNT(distinct od.ProductID) > 50
  40. ORDER BY e.EmployeeID
  41.  
  42. --3
  43. SELECT CASE GROUPING(YEAR(o.OrderDate)) WHEN 0 THEN CAST(YEAR(o.OrderDate) AS VARCHAR(10)) ELSE 0 END as Rok,
  44. CASE GROUPING(MONTH(o.OrderDate)) WHEN 0 THEN CAST(MONTH(o.OrderDate) AS VARCHAR(10)) ELSE 0 END as Miesiac,
  45. CASE GROUPING(DAY(o.OrderDate)) WHEN 0 THEN CAST(DAY(o.OrderDate) AS VARCHAR(10)) ELSE 0 END as Dzien,
  46. SUM(od.UnitPrice*od.Quantity*(1-od.Discount)) as 'analiza kosztow'
  47. FROM Employees e JOIN Orders o ON e.EmployeeID=o.EmployeeID
  48. JOIN [Order Details] od ON o.OrderID=od.OrderID
  49. WHERE e.LastName = 'Buchanan'
  50. GROUP BY GROUPING SETS((YEAR(o.OrderDate)), (MONTH(o.OrderDate)), (DAY(o.OrderDate)))
  51.  
  52. SELECT od.ProductID,CASE GROUPING(YEAR(o.OrderDate)) WHEN 0 THEN CAST(YEAR(o.OrderDate) AS VARCHAR(10)) ELSE 0 END as Rok,
  53. CASE GROUPING(MONTH(o.OrderDate)) WHEN 0 THEN CAST(MONTH(o.OrderDate) AS VARCHAR(10)) ELSE 0 END as Miesiac,
  54. CASE GROUPING(DAY(o.OrderDate)) WHEN 0 THEN CAST(DAY(o.OrderDate) AS VARCHAR(10)) ELSE 0 END as Dzien,
  55. SUM(od.UnitPrice*od.Quantity*(1-od.Discount)) as 'analiza kosztow'
  56. FROM Employees e JOIN Orders o ON e.EmployeeID=o.EmployeeID
  57. JOIN [Order Details] od ON o.OrderID=od.OrderID
  58. WHERE e.LastName = 'Buchanan'
  59. GROUP BY od.ProductID ,YEAR(o.OrderDate), MONTH(o.OrderDate), (DAY(o.OrderDate)) WITH ROLLUP
  60.  
  61. --4
  62. SELECT LastName
  63. FROM(
  64. SELECT e.LastName, RANK() OVER (ORDER BY e.HireDate) as ranking
  65. FROM Employees e
  66. WHERE e.HireDate < all(SELECT e2.HireDate FROM Employees e2 WHERE e2.City='London')) as podzapytanie
  67. WHERE podzapytanie.ranking BETWEEN 2 AND 3
  68.  
  69. --II_1
  70. SELECT CustomerID, ROUND(AVG(UnitPrice*Quantity*(1-Discount)),2) as 'średnia kwota'
  71. FROM(
  72. SELECT c.CustomerID, o.OrderID, od.Quantity, od.UnitPrice, od.Discount,
  73. DENSE_RANK() OVER (PARTITION BY c.CustomerID ORDER BY o.CustomerID, o.OrderDate DESC) as ranking
  74. FROM Customers c JOIN Orders o ON c.CustomerID=o.CustomerID
  75. JOIN [Order Details] od ON o.OrderID=od.OrderID
  76. WHERE c.Country = 'Spain') as podzapytanie
  77. WHERE podzapytanie.ranking < 6
  78. GROUP BY CustomerID
  79. ORDER BY CustomerID
  80.  
  81. --II_2
  82. SELECT RANK(100) WITHIN GROUP (ORDER BY SUM(od.Quantity*od.UnitPrice*(1-od.Discount)))
  83. FROM Customers c JOIN Orders o ON c.CustomerID=o.CustomerID
  84. JOIN [Order Details] od ON o.OrderID=od.OrderID
  85. WHERE YEAR(o.OrderDate) = 1997 AND c.City = 'Berlin'
  86. GROUP BY o.OrderID
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement