Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка с запросом sql! / 8 сообщений из 8, страница 1 из 1
15.09.2017, 11:52
    #39521679
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
Добрый день, всем!

Подскажите пожалуйста с ответом на следующий вопрос.
Есть таблица: custship
в ней есть столбец nom_usl.
Я хочу применить конструкцию group by.

Пишу:
SELECT custship.*;
FROM custship;
group by custship.nom_usl;
INTO TABLE custship1.dbf

Допустим в таблицу сохраняю другую, можно в принципе и курсор - неважно. Так и так не отрабатывает
команда group by
Пишется ошибка: group by clause is missing or invalid
Я не понимаю почему, подскажите пожалуйста.

Если пишу все тоже самое с order by, то все хорошо.
Спасибо большое.
...
Рейтинг: 0 / 0
15.09.2017, 12:01
    #39521692
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
dima_18,

и какой смысл тут в group by?
...
Рейтинг: 0 / 0
15.09.2017, 12:01
    #39521693
T1gRa_NT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
Группировка возможно только по столбцам которые вы указали в Select. Нельзя выбрать 2 столбца, а группировать по 1.
Нет, при большом желании можно с помощью переключении логики на 7 версию,
Код: sql
1.
SET ENGINEBEHAVIOR 70

но это признано багом и очень не рекомендуется, т.к. можно получить неожиданные результаты.
...
Рейтинг: 0 / 0
15.09.2017, 12:05
    #39521699
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
В group by должны быть перечислены все поля, по которым не указано как группировать.
Т.е. примерно так
Код: sql
1.
2.
3.
SELECT custship.nom_usl, max(f1) as f1, sum(f2) as f2, count(*) as cnt ...;
FROM custship;
group by custship.nom_usl;



Иначе как определить какую из двух строк брать:
nom_uslf11213
для order by будут взяты обе, поэтому проблемы нет
...
Рейтинг: 0 / 0
15.09.2017, 12:07
    #39521704
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
Большое спасибо за ответы, но тогда так спрошу:

есть в таблице столбцы:
stoim и nom_usl

Они такие:
stoim nom_usl
419.1 0002
99.89 0001
419.91 0002
99.89 0001
419.89 0001

Мне нужно только следующее:
stoim nom_usl
419.1 0002
99.89 0001

и все

зачем повторяться.
Спасибо
...
Рейтинг: 0 / 0
15.09.2017, 12:09
    #39521706
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
dima_18,

для выборки только уникальных строк есть distinct и group by тут не при делах.
...
Рейтинг: 0 / 0
15.09.2017, 12:10
    #39521707
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
Для этого есть distinct
Код: sql
1.
2.
3.
SELECT distinct custship.*;
FROM custship;
INTO TABLE custship1.dbf
...
Рейтинг: 0 / 0
15.09.2017, 12:15
    #39521714
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка с запросом sql!
Не, distinct не поможет, stoim разная, если тебе без разницы из какой строки будет взято значение stoim, то бери min() или max()
Код: sql
1.
2.
3.
SELECT custship.nom_usl, max(stoim) as stoim;
FROM custship;
group by custship.nom_usl;
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ошибка с запросом sql! / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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