--Разгледайте таблицата Customers.
--Напишете заявка, която връща различните региони, в които компанията има клиенти.
SET schema Northwind;
SELECT DISTINCT region FROM customers;
--Напишете заявка, която извежда име на продукт и име на клиента,
--който го е поръчал.
SELECT DISTINCT p.productname,c.contactname FROM
products p JOIN "Order Details" od ON p.productid=od.productid
JOIN orders o ON od.orderid=o.orderid
JOIN customers c ON o.customerid=c.customerid;
--Напишете заявка, която извежда номер на клиент, дта на поръчка,
--и име на продукт, само за тези страни, които имат над 2 поръчки.
--(Използвайте и таблицата Order Details).
SELECT c.customerid, o.orderdate, p.productname
FROM
customers c JOIN orders o ON o.customerid=c.customerid
JOIN "Order Details" od ON od.orderid=o.orderid
JOIN products p ON p.productid=od.productid
WHERE (SELECT count(shipcountry) FROM orders o2
WHERE o2.shipcountry=c.country)>2;
--Напишете заявка, която извежда, списък на служителите,
--които са подчинени директно на този, които няма шеф.
SELECT e.* FROM employees boss JOIN employees e ON e.reportsto=boss.employeeid
WHERE boss.reportsto IS NULL;
-- Напишете заявка, която извежда
-- двете имена на даден служител и имената на неговия шеф.
SELECT e.firstname, e.lastname, boss.firstname BossFirstName, boss.lastname BossLastName
FROM employees e JOIN employees boss
ON e.reportsto=boss.employeeid;
--Изведете имената на всички клиенти от таблицата Customers,
--които са от същия град като клиент с име 'Thomas Hardy'.
--....
--Изведете името и цената на най-скъпия продукт, който клиент
--с име 'Philip Cramer', някога си е поръчвал.
SELECT p.productname, p.unitprice FROM products p
JOIN "Order Details" od ON od.productid=p.productid
JOIN orders o ON o.orderid=od.orderid
JOIN customers c ON c.customerid=o.customerid
WHERE
c.contactname='Philip Cramer'
AND p.unitprice >=ALL(
SELECT p.unitprice FROM products p
JOIN "Order Details" od ON od.productid=p.productid
JOIN orders o ON o.orderid=od.orderid
JOIN customers c ON c.customerid=o.customerid
WHERE
c.contactname='Philip Cramer'
);
SELECT p.productname, p.unitprice FROM products p
JOIN "Order Details" od ON od.productid=p.productid
JOIN orders o ON o.orderid=od.orderid
JOIN customers c ON c.customerid=o.customerid
WHERE
c.contactname='Philip Cramer'
ORDER BY p.unitprice DESC
fetch first 1 rows only;
--Изведете имената на всички продукти, които са по-евтини от най-скъпия продукт,
--който клиент с име 'Philip Cramer' някога си е поръчвал.
---....
--Изведете имената на всички клиенти
--от таблицата Customers, които никога не са поръчвали продукт с име 'Tofu'.
---...