Facebook
From Sloppy Anoa, 4 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 207
  1. --1. Wyświetl najdroższe produkty w danej kategorii.
  2.  
  3.  
  4. SELECT CategoryID, ProductName, UnitPrice FROM Products
  5. WHERE UnitPrice IN (SELECT MAX(unitPrice) FROM Products GROUP BY CategoryID)
  6. ORDER BY 1, 3 DESC
  7.  
  8.  
  9. SELECT CategoryID, ProductName, UnitPrice FROM Products AS p1
  10. WHERE UnitPrice IN (SELECT MAX(unitPrice) FROM Products AS p2 WHERE p2.CategoryID = p1.CategoryID)
  11. ORDER BY 1, 3 DESC;
  12.  
  13.  
  14. SELECT c.CategoryID, p.ProductName, p.UnitPrice FROM Categories AS c INNER JOIN
  15. Products AS p ON c.CategoryID=p.CategoryID
  16. WHERE UnitPrice IN (SELECT MAX(unitPrice) FROM Products AS p1 WHERE p1.CategoryID = c.CategoryID)
  17. ORDER BY 1, 3 DESC;
  18.  
  19.  
  20. --2. Znaleźć kategorię do której nie przypisano żadnego produktu
  21.    --1 wykorzystując operator JOIN
  22.    --2 zapytanie z podzapytaniem skorelowane --np. EXISTS lub NOT EXISTS
  23.    --3 zapytanie z podzapytaniem nieskorelowane
  24.  
  25. INSERT Categories (CategoryName) VALUES ('Kat1')
  26.  
  27. SELECT c.CategoryName FROM Categories AS c LEFT OUTER JOIN Products AS p ON c.CategoryID = p.CategoryID
  28. WHERE (p.ProductName IS NULL);
  29.  
  30.  
  31. SELECT CategoryName FROM Categories
  32. WHERE NOT EXISTS (SELECT * FROM Products WHERE Products.CategoryID=Categories.CategoryID);
  33.  
  34. SELECT CategoryName FROM Categories
  35. WHERE CategoryID NOT IN (SELECT DISTINCT CategoryID FROM Products WHERE CategoryID IS NOT NULL);
  36.  
  37. --3. Który z pracowników zrealizował największą liczbę zamówień, w każdym z lat funkcjonowania firmy.
  38.  
  39. WITH
  40. TMP1 AS (SELECT e.LastName, YEAR(o.OrderDate) AS ROK, COUNT(DISTINCT o.OrderID) AS Liczba
  41. FROM Employees AS e INNER JOIN orders AS o ON e.EmployeeID = o.EmployeeID
  42. GROUP BY e.LastName, YEAR(o.OrderDate))
  43. SELECT * FROM TMP1 WHERE Liczba IN (SELECT MAX(liczba) FROM TMP1 AS tmp2 WHERE tmp2.ROK = TMP1.ROK)
  44.  
  45.  
  46. --4. Który z pracowników zrealizował zamówienia sumarycznie za najwyższą kwotę w danym roku.
  47.  
  48. --5. Jaki klient kupił za największą kwotę sumarycznie w każdym z lat funkcjonowania firmy.
  49.  
  50. --6. Znajdź faktury każdego z klientów opiewające na najwyższe kwoty.
  51.  
  52. --7. Podaj najlepiej sprzedające się produkty w każdej kategorii.
  53.  
  54. --8. Podaj jakiego towaru każdego z dostawców jest w magazynie na najwyższą kwotę.
  55.  
  56. --9. Podaj najlepiej sprzedający się produkt w każdym z roku i kwartale funkcjonowania firmy.
  57.  
  58. --10. W jaki dzień tygodnia była największa i najmniejsza sprzedaż.
  59.  
  60. --11. Tworzenie tabel na podstawie wyników polecenia: select * from products  (SELECT INTO)
  61.    -- Dołóż do wcześniej utworzonej tabeli na podstawie zapytania jeszcze raz te same dane.
  62.  
  63. --12. Skasuj produkty należące do kategorii CAT1 (najpierw dodać 2 produkty bez kategorii, następnie nową kategorię CAT1 i przypisać    --dodanym wcześniej produktom tą kategorię)
  64.    --1 wykorzystać zapytanie z podzapytaniem
  65.    --2 oraz zapytanie typu JOIN - jeśli się da
  66.  
  67. --13. Zmodyfikuj cenę produktów o 20% dla produktów należących do kategorii o nazwie CAT1.
  68.  
  69. --14. Podaj w pierwszej kolumnie ROK, w następnych kolumnach miesiące od 1 do 12.
  70.   --W kolejnych rekordach podajemy sprzedaż w danym roku w danym miesiącu. Wykorzystać funkcję COALESCE.
  71.  
  72. --15. Wyświetl najdroższe dwa produkty w danej kategorii (podajemy nazwę kategorii, nazwę produktu i jego cenę)
  73.  
  74. --16. Napisz kilka przykładowych zapytań wykorzystujących operator [ANY|SOME, ALL] na bazie Northwind. Zadaj pytania, na które odpowiadają dane przykłady.
  75.