Skip to content

Instantly share code, notes, and snippets.

@Mark-Uri
Created February 7, 2025 16:04
Show Gist options
  • Save Mark-Uri/e2838d3f701d0b35f5c2a4f89bcf2880 to your computer and use it in GitHub Desktop.
Save Mark-Uri/e2838d3f701d0b35f5c2a4f89bcf2880 to your computer and use it in GitHub Desktop.
sql
1. Посчитать возможную выручку за хлеб и молоко (с учётом скидок на эти товары)
-- SELECT name,price,discount,
-- SUM(price * (1 - COALESCE(discount, 0)/100)) OVER() AS [Сумма]
-- FROM Product
-- WHERE name LIKE '%Молоко%' OR name LIKE '%Батон'
2. Получить информацию о том, каких товаров вчера и сегодня доставили более 10 штук (getdate, dateadd)
-- SELECT name, date_of_delivery,quantity
-- FROM Product
-- WHERE quantity > 10 AND date_of_delivery BETWEEN DATEADD(day, -1, CAST(GETDATE() AS DATE)) AND CAST(GETDATE() AS DATE);
3. Показать названия и цены товаров, доставленных на протяжении последнего месяца.
SELECT name, price
FROM Product
WHERE date_of_delivery > DATEADD(day, -30, CAST(GETDATE() AS DATE))
4. Показать на экран названия и цены товаров с категорией "Кондитерские изделия", но только не торговой марки "Roshen"
Так как у меня категория "Кондитерские изделия" имеет названые "Сладости"и торговой марки "Roshen" тоже нету то будет "МилкаПол"
Задачу решу имеея свои условия.
SELECT name, price
FROM Product
WHERE category = 'Сладости' AND supplier != 'МилкаПол'
5. Показать на экран все товары, название которых начинается на букву "К", и категория которых содержит букву "А"
SELECT name, price
FROM Product
WHERE name LIKE 'К%' AND category LIKE '%а%'
6. Показать на экран все товары, названия которых начинаются с "В" и по "Л" включительно
SELECT *
FROM Product
WHERE name LIKE 'В%' OR (name >= 'В' AND name <= 'Л')
7. Показать все товары стоимостью меньше 50 гривен, и датой поставки неделю назад от текущей даты
SELECT *
FROM Product
WHERE price<50 AND date_of_delivery > DATEADD(day, -7, CAST(GETDATE() AS DATE))
8. Показать все товары категории "Безалкогольные напитки", количество которых более 100
SELECT *
FROM Product
WHERE category = 'Безалкогольные напитки' AND quantity > 100
9. Получить информацию о товарах ценой от 100 до 200 гривен, отсортировать цену по возрастанию
SELECT *
FROM Product
WHERE price BETWEEN 100 AND 200
ORDER BY price
10. Уменьшить цены на все товары на 5%
SELECT name, price,ROUND(price * 5 / 100, 2) AS [Скидка],
ROUND(price - price * 5 / 100, 2) AS [Стоимость товара]
FROM Product
11. Проставить сегодняшнюю дату доставки на все товары, в которых такая информация отсутствует
UPDATE Product
SET date_of_delivery = GETDATE()
WHERE date_of_delivery IS NULL;
12. Удалить все товары, количество которых меньше 100, а цена более 70 гривен
SELECT *
FROM Product
DELETE FROM Product
WHERE discount <100 AND price > 70
13. Удалить все алкогольные напитки и кондитерские изделия
SELECT *
FROM Product
DELETE FROM Product
WHERE category LIKE 'Напитки' AND category LIKE 'Kондитерские изделия'
14. Показать на экран все товары, в названии которых содержится РОВНО 3 буквы "О" (в любых местах названия, не обязательно подряд)
SELECT *
FROM Product
WHERE (LEN(name) - LEN(REPLACE(name, 'О', ''))) = 3
15. Удалить все товары, названия которых состоят из 5 букв
SELECT name
FROM Product
DELETE FROM Product
WHERE LEN(name) = 5
16. Удалить все товары, дата доставки которых была более 3 месяцев назад от текущей даты
SELECT *
FROM Product
DELETE FROM Product
WHERE date_of_delivery < DATEADD(day, -90, CAST(GETDATE() AS DATE))
17. Показать 5 самых дорогих товаров
SELECT TOP 5 name,price
FROM Product
ORDER BY price DESC;
18. Удалить все товары, информация о производителе которых неизвестна, или же если скидка на эти товары более 10%
SELECT *
FROM Product
DELETE FROM Product
WHERE supplier = NULL OR discount > 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment