WildSery wrote:

select did, (select sum(l.enum5*d.dnum8) from lin l where d.did = l.eiddoc)
   from doc d
   where d.dnum5 != (select sum(l.enum5*d.dnum8) from lin l where d.did = 
l.eiddoc)

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Cannot use an aggregate function in a WHERE clause, use HAVING instead.

Объясните мне, пожалуйста, почему в подзапросе в списке полей я могу этот 
запрос использовать, а вот для отбора по условию - нет.

Патамучта это агрегат (ссылка на D лежит внутри sum). Хотя тут по идее должен пропускать, т.к. агрегат относится к другому контексту...

И ещё второй вопрос - почему в FB 1.0.3 запрос выполняется без ошибок.

Старый он, глупый...


--
Дмитрий Еманов

Ответить