Skip to content

Instantly share code, notes, and snippets.

@hmel1990
Created February 7, 2025 16:51
Show Gist options
  • Select an option

  • Save hmel1990/28e320682b1ee51a75e046c1d2480b76 to your computer and use it in GitHub Desktop.

Select an option

Save hmel1990/28e320682b1ee51a75e046c1d2480b76 to your computer and use it in GitHub Desktop.
ДЗ запросы БД
-- 1. Посчитать возможную выручку за хлеб и молоко (с учётом скидок на эти товары)
--SELECT *,(price * quantity - price*discount)[Цена с учетом скидки]
--FROM Store_table
--WHERE name LIKE '%хлеб%' OR name LIKE '%молоко%'
--2. Получить информацию о том, каких товаров вчера и сегодня доставили более 10 штук (getdate, dateadd)
--SELECT *
--FROM Store_table
--WHERE (date_of_delivery = CAST (GETDATE() AS DATE) OR date_of_delivery = CAST (DATEADD(DAY, -1, GETDATE()) AS DATE)) AND quantity>300 -- у меня все были больше 10 штук
----3. Показать названия и цены товаров, доставленных на протяжении последнего месяца.
--SELECT name,price
--FROM Store_table
--WHERE date_of_delivery BETWEEN CAST (DATEADD(MONTH,-1,GETDATE()) AS DATE) AND CAST (GETDATE() AS DATE)
--4. Показать на экран названия и цены товаров с категорией "Кондитерские изделия", но только не торговой марки "Roshen"
--SELECT name,price,supplier
--FROM Store_table
--WHERE category LIKE '%сладости%' AND supplier NOT LIKE '%медопт%' -- подставил свои значения
--5. Показать на экран все товары, название которых начинается на букву "К", и категория которых содержит букву "А"
--SELECT *
--FROM Store_table
--WHERE name LIKE 'К%' AND category LIKE '%А%'
--6. Показать на экран все товары, названия которых начинаются с "В" и по "Л" включительно
--SELECT *
--FROM Store_table
--WHERE name LIKE '[В-Л]%'
--7. Показать все товары стоимостью меньше 50 гривен, и датой поставки неделю назад от текущей даты
SELECT *
FROM Store_table
WHERE price <50 AND date_of_delivery = CAST((DATEADD(DAY,-1, GETDATE())) AS DATE) -- указал в (DAY,-1, GETDATE()) DAY вместо WEEK т.к. у меня дата доставки вчера и позавчера
--8. Показать все товары категории "Безалкогольные напитки", количество которых более 100
SELECT *
FROM Store_table
WHERE category LIKE '%сладости%' AND quantity >100 -- "Безалкогольные напитки" нет в базе но есть "Сладости"
--9. Получить информацию о товарах ценой от 100 до 200 гривен, отсортировать цену по возрастанию
--SELECT *
--FROM Store_table
--WHERE price BETWEEN 100 AND 200
--ORDER BY price
--10. Уменьшить цены на все товары на 5%
--UPDATE StoreTableCopy
--SET price = ROUND (price*0.95,2)
--SELECT *
--FROM StoreTableCopy
--11. Проставить сегодняшнюю дату доставки на все товары, в которых такая информация отсутствует
--UPDATE Store_table
--SET date_of_delivery = CAST (GETDATE() AS DATE)
--WHERE date_of_delivery IS NULL
--SELECT *
--FROM Store_tableble
--12. Удалить все товары, количество которых меньше 100, а цена более 70 гривен
--DELETE FROM StoreTableCopy
--WHERE quantity <100 AND price > 70
--13. Удалить все алкогольные напитки и кондитерские изделия
--DELETE FROM StoreTableCopy
--WHERE category LIKE '%сладости%' OR category LIKE '%напитки%' -- подставил свои знначения для категорий
--14. Показать на экран все товары, в названии которых содержится РОВНО 3 буквы "О" (в любых местах названия, не обязательно подряд)
--SELECT *
--FROM Store_table
--WHERE name LIKE '%О%О%' -- у меня есть только с двумя буквами "о"
--15. Удалить все товары, названия которых состоят из 5 букв
DELETE FROM StoreTableCopy
WHERE LEN (name) = 5
SELECT *
FROM StoreTableCopy
--16. Удалить все товары, дата доставки которых была более 3 месяцев назад от текущей даты
--DELETE FROM StoreTableCopy
--WHERE date_of_delivery < DATEADD(MONTH, -3, GETDATE())
--17. Показать 5 самых дорогих товаров
--SELECT TOP 5 *
--FROM Store_table
--ORDER BY price DESC
--18. Удалить все товары, информация о производителе которых неизвестна, или же если скидка на эти товары более 10%
--DELETE FROM StoreTableCopy
--WHERE producer IS NULL OR discount > 3 -- у меня скидка только 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment