Показать сообщение отдельно
Старый 22.09.2009, 14:02   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Синтаксис вида

join Table where ...

предполагает, что из таблицы Table необходимо взять все поля. Что противоречит аггрегирующей функции Count() в первом select. Необходимо либо добавить аггрегирующую функцию и во вторую таблицу

X++:
select Count(RecId) from Table1
join Count(RecId) from Table2 where Table1.field1 == Table2.field1 && Table2.field2 == "111"
Либо указать в качестве списка полей второй таблицы - константу. Обычно это TableId

X++:
select Count(RecId) from Table1
join TableId from Table2 where Table1.field1 == Table2.field1 && Table2.field2 == "111"
Добавление группировки, также ограничивает выводимый список полей только полями, участвующими в группировке. Но это не явное ограничение, которое, по возможности, желательно избегать. Просто запрос становится "не прозрачным"

Ну, или воспользоваться советом dech и использовать exists join. Но это уже зависит от того, какое именно количество нужно подсчитать.
За это сообщение автора поблагодарили: mazzy (2).