Skip to content

Instantly share code, notes, and snippets.

@GhostRJY
Created February 6, 2025 22:26
Show Gist options
  • Save GhostRJY/2981d55c9d6af571f319bdfbf2c2a7d1 to your computer and use it in GitHub Desktop.
Save GhostRJY/2981d55c9d6af571f319bdfbf2c2a7d1 to your computer and use it in GitHub Desktop.
-- 1. Посчитать возможную выручку за Видеокарты и ЦПУ (с учётом скидок на эти товары)
USE Product
SELECT *, (price-price*discount/100)*quantity AS [возможная выручка]
FROM Products
WHERE category IN ('GPU', 'CPU')
-- 2. Получить информацию о том, каких товаров вчера и сегодня доставили более 5 штук (getdate, dateadd)
SELECT id, name, category, date_of_delivery, quantity, producer, price
FROM Products
WHERE (date_of_delivery = CAST(GETDATE()-1 AS date) OR date_of_delivery = CAST(GETDATE() AS date)) AND quantity >= 5
--3. Показать названия и цены товаров, доставленных на протяжении последнего месяца.
SELECT name, price, date_of_delivery
FROM Products
WHERE date_of_delivery BETWEEN CAST('2025-02-01' AS date) AND CAST('2025-02-28' AS date)
--4. Показать на экран названия и цены товаров с категорией "GPU", но только не торговой марки "Asus"
SELECT name, price, category, producer
FROM Products
WHERE category = 'GPU' AND producer NOT LIKE 'Asus'
--5. Показать на экран все товары, название которых начинается на букву "M", и категория которых содержит букву "А"
SELECT name, price, category, producer
FROM Products
WHERE name LIKE 'M%' AND category LIKE '%A%'
--6. Показать на экран все товары, названия которых начинаются с "M" и по "R" включительно
SELECT name, price, category, producer
FROM Products
WHERE name BETWEEN 'M%' AND 'S%'
--7. Показать все товары стоимостью меньше 1000 USD, и датой поставки неделю назад от текущей даты
SELECT id, name, category, date_of_delivery, price
FROM Products
WHERE price < 1000 AND date_of_delivery = CAST((GETDATE()-7) AS date)
--8. Показать все товары категории "GPU", количество которых более 100
SELECT id, name, category, quantity
FROM Products
WHERE quantity > 100
--9. Получить информацию о товарах ценой от 1000 до 2000 USD, отсортировать цену по возрастанию
SELECT id, name, category, price
FROM Products
WHERE (price BETWEEN 1000 AND 2000)
ORDER BY price ASC
--10. Уменьшить цены на все товары на 5%
SELECT id, name, price + price*5/100 [Цена увеличилась на 5%]
FROM Products
--11. Проставить сегодняшнюю дату срока годности на все товары, в которых такая информация отсутствует
UPDATE Products
set expire_date = CAST(GETDATE() AS date)
WHERE expire_date IS NULL
--12. Удалить все товары, количество которых меньше 100, а цена более 2000 USD
DELETE FROM Products
WHERE quantity < 100 AND price >2000
--13. Удалить все Корпуса из продажи
DELETE FROM Products
WHERE category = 'Case'
--14. Показать на экран все товары, в названии которых содержится РОВНО 3 буквы "О" (в любых местах названия, не обязательно подряд)
--15. Удалить все товары, названия которых состоят из 5 букв
DELETE FROM Products
WHERE name LIKE '_____'
--16. Удалить все товары, дата доставки которых была более 3 месяцев назад от текущей даты
DELETE FROM Products
WHERE date_of_delivery < CAST(GETDATE()-90)
--17. Показать 5 самых дорогих товаров
SELECT TOP 5 id, 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