Created
February 7, 2025 16:51
-
-
Save hmel1990/28e320682b1ee51a75e046c1d2480b76 to your computer and use it in GitHub Desktop.
ДЗ запросы БД
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- 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