|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Всем привет!) Нужна ваша помощь) Есть таблица products с полями NAME и PRICE(Таблица во вложении) Вот исходные данные: create table Product(NAME varchar2(255), PRICE number ); insert into Product(NAME, PRICE) values ('Молоко', 130 ); insert into Product(NAME, PRICE) values ('Сыр', 162 ); insert into Product(NAME, PRICE) values ('Арахис', 300 ); insert into Product(NAME, PRICE) values ('Хлеб', 40); insert into Product(NAME, PRICE) values ('Бананы',200); insert into Product(NAME, PRICE) values ('Шоколад',90); insert into Product(NAME, PRICE) values ('Клюква', 140); insert into Product(NAME, PRICE) values ('Морковка',92 ); insert into Product(NAME, PRICE) values ('Паста', 135 ); insert into Product(NAME, PRICE) values ('Шампунь', 170 ); Надо написать запрос, который вернет 3 товара, общая сумма которых равна или больше 510 и отсортировать по возрастанию цены. Вначале думал написать с помощью SUM и подзапроса,но совсем не то получается. Помогите пожалуйста . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 21:04 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Dropyyy 3 товара, общая сумма которых равна или больше 510 А если сумма даже трёх самых дорогих - всё равно меньше? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 21:31 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Akina,Отвечая на ваш вопрос- Сумма 3х самых дорогих все равно будет больше 510(соответственно 'Арахис', 300 'Бананы',200 'Шампунь', 170 ) И извините что расплывчато объяснил и с ошибками написал условие. Тут общая стоимость равен или больше 410. И самое главное,сумма выводимых 3х товаров должна быть наиболее близка к 410,т.е. чтобы можно было достигнуть этой суммы,потратив меньше всего денег на эти товары. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 21:42 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Dropyyy Сумма 3х самых дорогих все равно будет больше 510 Данные могут и поменяться. То, что сейчас больше, не гарантирует, что завтра тоже будет больше. PS. А первичный индекс в таблице-то есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 21:45 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Akina,первичного индекса в таблице нет. И в данном случае данные не меняются) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 21:49 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Akina, Cпасибо. Ознакомился с пособием. Я попробовал разные способы написание запроса,но не смог реализовать главное условие. Если сможете подсказать в каком направлении копать,буду очень благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 22:53 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Dropyyy Я попробовал разные способы написание запроса,но не смог реализовать главное условие. Если сможете подсказать в каком направлении копать,буду очень благодарен И где пробы? Слепи джойнами 3 копии таблицы (условия связывания: NAME второй копии д.б больше первой, а третьей - больше второй), получи сумму трех цен, откинь лишние, отсортируй оставшиеся ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 07:40 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
MS SQL: select top 1 p1.*, p2.*, p3.* , p1.PRICE + p2.PRICE + p3.PRICE as S from Product p1, Product p2, Product p3 where p1.NAME <> p2.NAME and p2.NAME <> p3.NAME and p1.PRICE + p2.PRICE + p3.PRICE > 410 order by p1.PRICE + p2.PRICE + p3.PRICE ORACLE: select * from ( select p1.*, p2.*, p3.* , p1.PRICE + p2.PRICE + p3.PRICE as S from Product p1, Product p2, Product p3 where p1.NAME <> p2.NAME and p2.NAME <> p3.NAME and p1.PRICE + p2.PRICE + p3.PRICE > 410 order by p1.PRICE + p2.PRICE + p3.PRICE ) where rownum = 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 15:00 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
Dropyyy Akina, Cпасибо. Ознакомился с пособием. Я попробовал разные способы написание запроса,но не смог реализовать главное условие. Если сможете подсказать в каком направлении копать,буду очень благодарен Какие именно разные способы вы пробовали? у меня интернет сбойнул, не вижу ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 16:44 |
|
SQL Запрос на
|
|||
---|---|---|---|
#18+
VDeltsov MS SQL: select top 1 p1.*, p2.*, p3.* , p1.PRICE + p2.PRICE + p3.PRICE as S from Product p1, Product p2, Product p3 where p1.NAME <> p2.NAME and p2.NAME <> p3.NAME and p1.PRICE + p2.PRICE + p3.PRICE > 410 order by p1.PRICE + p2.PRICE + p3.PRICE Неправильно. Должно быть Код: sql 1.
Ну и в ORDER BY можно использовать алиас S ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 05:31 |
|
|
start [/forum/topic.php?fid=47&msg=40134649&tid=1827772]: |
0ms |
get settings: |
15ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
256ms |
get tp. blocked users: |
2ms |
others: | 376ms |
total: | 729ms |
0 / 0 |