Страница 1 из 2

Может кто с задачей помочь?

Добавлено: 01 июл 2008, 09:00
FireStar
Имеется таблица с 10 произвольными товарами разной стоимости, нужно составить SQL запрос, который выводит наиболее дорогой.

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 10:22
Игорь Акопян
[syntax='sql']select max(стоимость), наименование
from таблица[/syntax]

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 11:06
FireStar
В Access max() не проходит.
Как можно через поиск это оформить? С временной переменной, циклом, который цену у всех подряд проверяет и выборкой где стоимость = вр.переменная.
Алгоритм себе представляю, но не знаю синтаксиса.

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 11:11
Serge_Bliznykov
Игорь Акопян, позвольте чуть-чуть подправить код (дело в том, что многие СУБД ревностно относятся к стандарту. ORACLE, например, выдаст ошибку
ORA-00937 not a single-group group function
Cause: A SELECT list cannot include both a group function, such as AVG, COUNT, MAX, MIN, SUM, STDDEV, or VARIANCE, and an individual column expression, unless the individual column expression is included in a GROUP BY clause.)


нужно добавить GROUP BY наименование:

Код: Выделить всё

SELECT max(стоимость), наименование FROM таблица GROUP BY наименование

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 11:54
FireStar
Не работает у меня этот макс.
Попробовал вставить это в access в таком виде:
SELECT max(стоимость), название
FROM товары
GROUP BY название;
Выдаёт все строки таблицы (цены во всех стоят разные) вместо одной.

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 12:54
Vasilisk
Если мне память не изменяет, то max/min работают либо с GROUP BY, либо с HAVING. Если ты пользуешься MS Access, то нет ничего проще - воспользуйся QBE, который встроен в Access - он же позволяет вводить выражения, а max - там точно есть.

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 12:58
FireStar
Мне нужно именно в SQL, без построителей и QBE

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 13:14
chur
Если для MS Access, то можно так:

SELECT TOP 1 стоимость, название
FROM товары
ORDER BY стоимость DESC;

Re: Может кто с задачей помочь?

Добавлено: 01 июл 2008, 17:07
Vasilisk
FireStar писал(а):Мне нужно именно в SQL, без построителей и QBE


А ты до того, как свой вопрос сюда написать своими глазами Access-то видал? В котором у него месте SQL-то вводится и как? :p :p

Re: Может кто с задачей помочь?

Добавлено: 02 июл 2008, 05:14
Serge_Bliznykov
Vasilisk, а лично Вы с Access давно работаете?.. вот я лично — нет. :-)
но ответ на Ваш вопрос тем не менее знаю! :-)
Запускаешь Access, слева там была закладка запросы, запускаешь в режиме конструктора, потом правой кнопкой, выбираешь "Режим SQL" - пишешь свой текст...