Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL запрос - в чем я не прав? помогите! / 3 сообщений из 3, страница 1 из 1
18.06.2012, 17:32
    #37843056
labirint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - в чем я не прав? помогите!
Добрый день, всем!

Фокс ругается на group by, а я не пойму - как сделать правильно?
Читал книгу по фоксу 6, там почти подробно описано - как строить запросы с group by, вроде бы понятно, а как начинаю сам делать - не получается :о((
Прошу помочь с данным запросом.

вот запрос:
SELECT f.fundname, e.name, sum(m.fmsum) as fmsum FROM деньги_фондов m INNER JOIN справочник_фондов f ON f.fundid = m.fundid INNER JOIN exps_ref e ON e.id = m.fmexp WHERE m.fundid = 1 AND MONTH(m.fmdate) = 6 group by m.fmexp, e.id INTO cursor vw"
...
Рейтинг: 0 / 0
18.06.2012, 17:46
    #37843079
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - в чем я не прав? помогите!
Если по простому, то в Group by должны быть перечислены все те поля, которые указаны в Select и не имеют аггрегирующих функций вроде sum(), max().

В данном случае у Вас в Select указаны поля f.fundname, e.name, а в group by указаны совершенно другие поля m.fmexp, e.id. Соответственно, надо изменить запрос следующим образом

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT ;
	f.fundname, ;
	e.name, ;
	sum(m.fmsum) as fmsum ;
FROM деньги_фондов m ;
INNER JOIN справочник_фондов f ON f.fundid = m.fundid ;
INNER JOIN exps_ref e ON e.id = m.fmexp ;
WHERE m.fundid = 1 ;
	AND MONTH(m.fmdate) = 6 ;
group by ;
	f.fundname, ;
	e.name ;
INTO cursor vw
...
Рейтинг: 0 / 0
18.06.2012, 18:54
    #37843174
labirint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - в чем я не прав? помогите!
ВладимирМЕсли по простому, то в Group by должны быть перечислены все те поля, которые указаны в Select и не имеют аггрегирующих функций вроде sum(), max().

В данном случае у Вас в Select указаны поля f.fundname, e.name, а в group by указаны совершенно другие поля m.fmexp, e.id. Соответственно, надо изменить запрос следующим образом


Спасибо! Так срабатывает! И объяснили просто и понятно. Спасибо!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL запрос - в чем я не прав? помогите! / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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