--1. Wyświetl najdroższe produkty w danej kategorii. select CategoryID, ProductName, UnitPrice from Products where UnitPrice IN (select max(unitPrice) from Products group by CategoryID) order by 1, 3 desc select CategoryID, ProductName, UnitPrice from Products as p1 where UnitPrice IN (select max(unitPrice) from Products as p2 where p2.CategoryID = p1.CategoryID) order by 1, 3 desc; select c.CategoryID, p.ProductName, p.UnitPrice from Categories as c inner join Products as p on c.CategoryID=p.CategoryID where UnitPrice IN (select max(unitPrice) from Products as p1 where p1.CategoryID = c.CategoryID) order by 1, 3 desc; --2. Znaleźć kategorię do której nie przypisano żadnego produktu --1 wykorzystując operator JOIN --2 zapytanie z podzapytaniem skorelowane --np. EXISTS lub NOT EXISTS --3 zapytanie z podzapytaniem nieskorelowane insert Categories (CategoryName) values ('Kat1') select c.CategoryName from Categories as c left outer join Products as p on c.CategoryID = p.CategoryID where (p.ProductName is NULL); select CategoryName from Categories where not exists (select * from Products where Products.CategoryID=Categories.CategoryID); select CategoryName from Categories where CategoryID not in (select distinct CategoryID from Products where CategoryID is not null); --3. Który z pracowników zrealizował największą liczbę zamówień, w każdym z lat funkcjonowania firmy. WITH TMP1 as (select e.LastName, Year(o.OrderDate) as ROK, COUNT(DISTINCT o.OrderID) as Liczba FROM Employees as e inner join orders as o on e.EmployeeID = o.EmployeeID GROUP BY e.LastName, YEAR(o.OrderDate)) select * from TMP1 where Liczba IN (select max(liczba) from TMP1 as tmp2 where tmp2.ROK = TMP1.ROK) --4. Który z pracowników zrealizował zamówienia sumarycznie za najwyższą kwotę w danym roku. --5. Jaki klient kupił za największą kwotę sumarycznie w każdym z lat funkcjonowania firmy. --6. Znajdź faktury każdego z klientów opiewające na najwyższe kwoty. --7. Podaj najlepiej sprzedające się produkty w każdej kategorii. --8. Podaj jakiego towaru każdego z dostawców jest w magazynie na najwyższą kwotę. --9. Podaj najlepiej sprzedający się produkt w każdym z roku i kwartale funkcjonowania firmy. --10. W jaki dzień tygodnia była największa i najmniejsza sprzedaż. --11. Tworzenie tabel na podstawie wyników polecenia: select * from products (SELECT INTO) -- Dołóż do wcześniej utworzonej tabeli na podstawie zapytania jeszcze raz te same dane. --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ę) --1 wykorzystać zapytanie z podzapytaniem --2 oraz zapytanie typu JOIN - jeśli się da --13. Zmodyfikuj cenę produktów o 20% dla produktów należących do kategorii o nazwie CAT1. --14. Podaj w pierwszej kolumnie ROK, w następnych kolumnach miesiące od 1 do 12. --W kolejnych rekordach podajemy sprzedaż w danym roku w danym miesiącu. Wykorzystać funkcję COALESCE. --15. Wyświetl najdroższe dwa produkty w danej kategorii (podajemy nazwę kategorii, nazwę produktu i jego cenę) --16. Napisz kilka przykładowych zapytań wykorzystujących operator [ANY|SOME, ALL] na bazie Northwind. Zadaj pytania, na które odpowiadają dane przykłady.