-- pokaż nazwę produktu i jego kategorię
select productname, categoryname
from products join categories on products.categoryid = categories.categoryid
order by 2 ,1
-- asc rosnąco, desc - malejąco
-- order by categoryname, productname
select productname, categoryname
from products P join categories C on P.categoryid = C.categoryid
order by 2 ,1
-- pełane złaczenie
select P.*, C.*
from products P, categories C
-- to co było + dostawca
select productname, categoryname, companyname
from (products P join categories C on P.categoryid = C.categoryid)
join suppliers S on P.supplierid = S.supplierid
order by 2 ,1
-- nazwe_klienta i liczba jego zamówień
select companyname, count(orderid) ile_zam
from customers C join orders O on C.customerid = O.customerid
group by companyname
-- nazwe_klienta i liczba jego zamówień tylko klientów spoza Am. Pn.
select country, companyname, count(orderid) ile_zam
from customers C join orders O on C.customerid = O.customerid
where country not in ('USA', 'Canada', 'Mexico')
group by country, companyname
order by 1,3 desc
-- nazwę produktu i wartość jego sprzedazy
select productname, sum(OD.unitprice*OD.quantity) as wartosc
from products P join [order details] OD on P.productid = od.productid
group by productname
order by 1
-- suma wszystkich transakcji
select sum(OD.unitprice*OD.quantity) as wartosc
from [order details] OD
-- podaj nazwę produktu i wartość jego sprzedazy
-- ale tylko jeśli ta wartośc była > 10000
select productname, sum(OD.unitprice*OD.quantity) as wartosc
from products P join [order details] OD on P.productid = od.productid
group by productname
having sum(OD.unitprice*OD.quantity)>10000
order by 2 desc
-- utwórz widok zawierający nazwe produktu i wartosc przedazy
create view prod_wart
as
select productname , sum(OD.unitprice*OD.quantity) as wartosc
from products P join [order details] OD on P.productid = od.productid
group by productname
select *
from prod_wart
where wartosc > 10000
-- jaki jest udział poszczególnych produktów w całości sprzedaży
select productname , wartosc, wartosc*100/
(select sum(OD.unitprice*OD.quantity) as wartosc
from [order details] OD ) as procent, '%'
from prod_wart
select floor(month(orderdate)/ 3.01)+1 as kwartal, count(*)
from orders
group by floor(month(orderdate)/ 3.01)+1