Skip to content

Instantly share code, notes, and snippets.

@Helen460
Created April 4, 2025 03:32
Show Gist options
  • Save Helen460/76c148a113efaae16f564b5e1fad5f72 to your computer and use it in GitHub Desktop.
Save Helen460/76c148a113efaae16f564b5e1fad5f72 to your computer and use it in GitHub Desktop.
6DZ
-- 1. Показати назви та категорії товарів, постачальниками яких є ООО "Паньки" або ООО "Які люди".
SELECT p.name [назва товару],
c.name [категорія]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Supplier s ON p.id_supplier = s.id
WHERE s.name IN ('ООО "Паньки"', 'ООО "Які люди"');
-- 2. Вибрати всі товари з вказівкою їх постачальника, ім'я виробника яких не містить літер [АКМ], і категорія яких не "Крупи"
SELECT p.name AS [назва товару],
s.name AS [постачальник],
pr.name AS [виробник],
c.name AS [категорія]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Supplier s ON p.id_supplier = s.id
JOIN Producer pr ON p.id_producer = pr.id
WHERE pr.name NOT LIKE '%АКМ%'
AND c.name != 'Крупи';
--3. Показати назви та категорії товарів з вказівкою постачальника та країни виробника. Умова: країна виробника не Україна, не Молдова і не Польща, ціна поставки менше 50 гривень, а дата поставки з 10.02.2025 і до сьогодні.
SELECT p.name [назва товару],
c.name [категорія],
s.name [постачальник],
cn.name [країна виробника]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Supplier s ON p.id_supplier = s.id
JOIN Producer pr ON p.id_producer = pr.id
JOIN Address a ON pr.id_address = a.id
JOIN City ct ON a.id_city = ct.id
JOIN Region r ON ct.id_region = r.id
JOIN Country cn ON r.id_country = cn.id
WHERE cn.name NOT IN ('Україна', 'Молдова', 'Польща')
AND p.supply_price < 50
AND p.supply_date BETWEEN '2025-02-10' AND CURDATE();
--4. Показати всі кондитерські та безалкогольні товари, яких було продано більше 100. Показати інформацію про постачальника та виробника.
SELECT p.name [назва товару],
c.name [категорія],
s.name [постачальник],
pr.name [виробник],
SUM(sale.amount) [загальна кількість проданих]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Sales sale ON p.id = sale.id_product
JOIN Supplier s ON p.id_supplier = s.id
JOIN Producer pr ON p.id_producer = pr.id
WHERE c.name IN ('Кондитерські', 'Безалкогольні')
GROUP BY p.name, c.name, s.name, pr.name
HAVING SUM(sale.amount) > 100;
--5. Зробити запит на вибірку інформації про поставку товарів у такому вигляді: назва товару та його постачальника, категорії, дата поставки тa загальна вартість поставлених товарів. Умова: лише три зазначених y запиті постачальники. Відсортувати назви товарів зa абеткою.
SELECT p.name [назва товару],
s.name [постачальник],
c.name [категорія],
p.supply_date [дата поставки],
(p.supply_price * p.amount) [загальна вартість]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Supplier s ON p.id_supplier = s.id
WHERE s.name IN ('Постачальник1', 'Постачальник2', 'Постачальник3')
ORDER BY p.name;
--6. Зробити запит на вибірку про продажі товарів у такому вигляді: назва товару та його виробника, повна адреса (країна, місто, вулиця) виробника в одній клітинці, категорії, дата продажу та загальна вартість продажу. Умова: виведена інформація не повинна стосуватися
двох зазначених у запиті виробників. Відсортувати загальну вартість продажу за спаданням.
SELECT p.name [назва товару],
pr.name [виробник],
CONCAT(cn.name, ', ', ct.name, ', ', a.street) [повна адреса виробника],
c.name [категорія],
s.sale_date [дата продажу],
(s.sale_price * s.amount) [загальна вартість продажу]
FROM Product p
JOIN Category c ON p.id_category = c.id
JOIN Sales s ON p.id = s.id_product
JOIN Producer pr ON p.id_producer = pr.id
JOIN Address a ON pr.id_address = a.id
JOIN City ct ON a.id_city = ct.id
JOIN Region r ON ct.id_region = r.id
JOIN Country cn ON r.id_country = cn.id
WHERE pr.name NOT IN ('Виробник1', 'Виробник2')
ORDER BY (s.sale_price * s.amount) DESC;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment