Skip to content

Instantly share code, notes, and snippets.

@Helen460
Created March 14, 2025 03:51
Show Gist options
  • Save Helen460/91008fc8f7cebe29960cbb198841b44a to your computer and use it in GitHub Desktop.
Save Helen460/91008fc8f7cebe29960cbb198841b44a to your computer and use it in GitHub Desktop.
Домашнє завдання по запитах
--1. Порахувати можливий дохід за хліб та молоко (з урахуванням знижок на ці товари)
SELECT name, price, discount, quantity, ROUND(price * (1 - discount / 100) * quantity, 2) AS [income]
FROM Products
WHERE name IN ('bread', 'milk')
--2. Отримати інформацію про товари, які були доставлені вчора і сьогодні більше 10 одиниць (getdate, dateadd)
SELECT name, price, quantity, date_of_delivery
FROM Products
WHERE (date_of_delivery = CAST(GETDATE() AS DATE) OR date_of_delivery = CAST(DATEADD(DAY, -1, GETDATE()) AS DATE)) AND quantity > 10
--3. Показати назви та ціни товарів, доставлених протягом останнього місяця
SELECT name, price
FROM Products
WHERE date_of_delivery >= DATEADD(MONTH, -1, GETDATE())
--4. Показати на екран назви та ціни товарів з категорії "Кондитерські вироби", але тільки не торгової марки "Roshen"
SELECT name, price
FROM Products
WHERE category = 'sweets' AND producer != 'Roshen'
--5. Показати на екран усі товари, назви яких починаються на букву "К", а категорії містять букву "А"
SELECT name, price, category
FROM Products
WHERE name LIKE 'К%' AND category LIKE '%А%'
--6. Показати на екран усі товари, назви яких починаються з "В" і до "Л" включно
SELECT name, price
FROM Products
WHERE name LIKE '[В-Л]%'
--7. Показати всі товари, вартість яких менше 50 гривень, і дата постачання яких тиждень тому від поточної дати
SELECT name, price, date_of_delivery
FROM Products
WHERE price < 50 AND date_of_delivery = DATEADD(DAY, -7, GETDATE())
--8. Показати всі товари категорії "Безалкогольні напої", кількість яких більше 100
SELECT name, price, quantity, category
FROM Products
WHERE category = 'drinks' AND quantity > 100
--9. Отримати інформацію про товари ціною від 100 до 200 гривень, відсортувавши ціну за зростанням
SELECT name, price
FROM Products
WHERE price > 100 AND price < 200
ORDER BY price ASC
--10. Зменшити ціни на всі товари на 5%
UPDATE Products
SET price = ROUND(price * 0.95, 2)
--11. Встановити сьогоднішню дату доставки на всі товари, у яких така інформація відсутня
UPDATE Products
SET date_of_delivery = CAST(GETDATE() AS DATE)
WHERE date_of_delivery IS NULL;
--12. Видалити всі товари, кількість яких менше 100, а ціна більше 70 гривень
DELETE FROM Products
WHERE quantity < 100 AND price > 70
--13. Видалити всі алкогольні напої та кондитерські вироби
DELETE FROM Products
WHERE category IN ('drinks', 'sweets')
--14. Показати на екран усі товари, у назві яких міститься РІВНО 3 літери "О" (в будь-яких місцях назви, не обов'язково підряд)
SELECT name, price
FROM Products
WHERE name LIKE '%О%О%О%'
--15. Видалити всі товари, назви яких складаються з 5 літер
DELETE FROM Products
WHERE LEN(name) = 5
--16. Видалити всі товари, дата доставки яких була більше 3 місяців тому від поточної дати
DELETE FROM Products
WHERE date_of_delivery < DATEADD(MONTH, -3, GETDATE())
--17. Показати 5 найдорожчих товарів
SELECT TOP 5 name, price
FROM Products
ORDER BY price DESC
--18. Видалити всі товари, інформація про виробника яких невідома, або ж якщо знижка на ці товари більше 10%
DELETE FROM Products
WHERE producer IS NULL OR discount > 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment