Skip to content

Instantly share code, notes, and snippets.

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