Может кто с задачей помочь?
Имеется таблица с 10 произвольными товарами разной стоимости, нужно составить SQL запрос, который выводит наиболее дорогой.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
[syntax='sql']select max(стоимость), наименование
from таблица[/syntax]
from таблица[/syntax]

В Access max() не проходит.
Как можно через поиск это оформить? С временной переменной, циклом, который цену у всех подряд проверяет и выборкой где стоимость = вр.переменная.
Алгоритм себе представляю, но не знаю синтаксиса.
Как можно через поиск это оформить? С временной переменной, циклом, который цену у всех подряд проверяет и выборкой где стоимость = вр.переменная.
Алгоритм себе представляю, но не знаю синтаксиса.
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
Игорь Акопян, позвольте чуть-чуть подправить код (дело в том, что многие СУБД ревностно относятся к стандарту. 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 наименование:
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 наименование
Не работает у меня этот макс.
Попробовал вставить это в access в таком виде:
Попробовал вставить это в access в таком виде:
Выдаёт все строки таблицы (цены во всех стоят разные) вместо одной.SELECT max(стоимость), название
FROM товары
GROUP BY название;
Если мне память не изменяет, то max/min работают либо с GROUP BY, либо с HAVING. Если ты пользуешься MS Access, то нет ничего проще - воспользуйся QBE, который встроен в Access - он же позволяет вводить выражения, а max - там точно есть.
Мне нужно именно в SQL, без построителей и QBE
Если для MS Access, то можно так:
SELECT TOP 1 стоимость, название
FROM товары
ORDER BY стоимость DESC;
SELECT TOP 1 стоимость, название
FROM товары
ORDER BY стоимость DESC;
FireStar писал(а):Мне нужно именно в SQL, без построителей и QBE
А ты до того, как свой вопрос сюда написать своими глазами Access-то видал? В котором у него месте SQL-то вводится и как?


-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
Vasilisk, а лично Вы с Access давно работаете?.. вот я лично — нет. :-)
но ответ на Ваш вопрос тем не менее знаю! :-)
Запускаешь Access, слева там была закладка запросы, запускаешь в режиме конструктора, потом правой кнопкой, выбираешь "Режим SQL" - пишешь свой текст...
но ответ на Ваш вопрос тем не менее знаю! :-)
Запускаешь Access, слева там была закладка запросы, запускаешь в режиме конструктора, потом правой кнопкой, выбираешь "Режим SQL" - пишешь свой текст...