powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как правильно сформировать SQL запрос
10 сообщений из 10, страница 1 из 1
Как правильно сформировать SQL запрос
    #32243210
slz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
slz
Гость
Здравствуйте.

Неодходимо получить агрегатную функцию от другой агрегатной функции, как лучше сделать?

Т.е. для примера таблица товаров:

Наименование
Кол-во

Надо найти какого наименования продано больше.

В результате запроса должна вернуться запись (или несколько с одинакой суммой по кол-ву) для определенного наименования.

Т.е. надо получить MAX(SUM(кол-во)) GROUP BY наименование.

Как реализовать такой запрос в VFP?

Заранее благодарен.
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243262
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:

SELECT Наименование, SUM(Кол_во) AS Кол_во ;
FROM ТаблицаТоваров ;
GROUP BY Наименование ORDER BY Кол_во DESC ;
WHERE Кол_во # (0) INTO CURSOR ИмяКурсора
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243268
slz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
slz
Гость
Так Вы получите таблицу, а не одну запись или несколько с одинаковыми суммами.
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243350
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда, если я правильно понял, к указанному выше запросу добавляем еще один

SELECT MAX(Кол_во) AS МахКол_во FROM ИмяКурсора

Этот запрос вернет строку с наибольшим кол-вом.
При попытке написать в запросе MAX(SUM(Кол_во)) фокс ругнулся на отсутствие ф-ции SUM. Можно, наверное как-то это сделать одним запросом, но проще, по-моему, двумя.
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243362
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна именно одна запись, то достачно использовать TOP 1

SELECT TOP 1 ;
Наименование, SUM(Кол_во) AS Кол_во ;
FROM ТаблицаТоваров ;
GROUP BY Наименование ;
ORDER BY Кол_во DESC

Если же именно список товаров у которых сумма равна максимальному количеству, то насколько я знаю, в FoxPro одним запросом не обойдешся.

Впрочем, даже если удасться выкрутится и составить навороченный запрос с подзапросами, скорость выполнения такого запроса в FoxPro будет намного ниже скорости выполнения нескольких последовательных запросов.
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243364
slz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
slz
Гость
А подзапрос, в VFP, можно в операторе HAVING написать?
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243399
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы поробуйте, а потом расскажите.
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243491
slz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
slz
Гость
Попробовал.
В WHERE работат, нет проблем, а в HAVING работает только с фиксированным параметром, а на подзапрос матерится. Конечно может, что не так пишу.
Вот и хотел узнать у народа, а могет ли VFP вобще это?
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32243682
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я в курсе, подзапросы в FoxPro можно ставить только в директиву WHERE, да и то, в строго определенном синтаксисе типа IN, ANY, SOME.

В директиве HAVING допустимы только собственно аггрегатные функции и константы.
...
Рейтинг: 0 / 0
Как правильно сформировать SQL запрос
    #32244015
slz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
slz
Гость
Спасибо, уже сам понял.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как правильно сформировать SQL запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]