Помогите с запросом! HELP!

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Эстет
Сообщения: 15
Зарегистрирован: 17 янв 2005, 13:36

Помогите с запросом! HELP!

Сообщение Эстет » 29 авг 2005, 19:31

В общем незнаю что делать. Суть такова. Есть таблица операций
OPERATIONS:
----------------
OPERATION_TYPE_ID
CLIENT_ID

Есть таблица названий операций:
OPERATION_TYPE:
---------------------
OPERATION_TYPE_ID
NAME (текстовое поле)

Хочу выбрать число операций по всем клиентам с группировкой по операционно:
SELECT A.OPERATION_TYPE_ID, COUNT(A.OPERATION_TYPE_ID)
FROM OPERATIONS A
GROUP BY A.OPERATION_TYPE_ID

Запрос работает без проблем.
Усложнаю задачу. Хочу что бы выводились названия операций и их количесво с группировкой по операционно:
SELECT B.NAME, COUNT(A.OPERATION_TYPE_ID)
FROM OPERATIONS A, OPERATION_TYPE B
WHERE A.OPERATION_TYPE_ID = B.OPERATION_TYPE_ID
GROUP BY A.OPERATION_TYPE_ID

Запрос не работает и пишет ошибку:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

Что я делаю не так ? HELP!

Эстет
Сообщения: 15
Зарегистрирован: 17 янв 2005, 13:36

Сообщение Эстет » 29 авг 2005, 19:39

да чёть не забыл fb 1.5.2

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 авг 2005, 20:18

оно ж тебе объясняет, столбец группировки не тот.
стандартный синтаксис такой:

select field, агрегат
group by field

ты можешь обхитрить его путем написания

select id, max(name), агрегат
group by id

потому что в одной группе id все равно будет одинаковый name. так ведь?

Ответить