У меня есть простая база данных SQL Server 2008 с двумя таблицами, подобными этой:
TableA:
(PK)"ID"
"Field"
и
TableB:
(PK)"ID"
(FK)"ID_TableA"
"Field"
Я хочу выбрать все поля в TableA
, а также количество соответствующих строк в TableB
для каждой строки TableA
:
SELECT A.*,
COUNT(B."ID") as "B's number"
FROM "TableA" A
LEFT JOIN "TableB" B ON (A."ID" = B."ID_TableA")
GROUP BY A."ID", A."Field"
Это хорошо работает, но у меня есть такая проблема: если TableA
будет дополнительно изменен (скажем, нам нужно добавить еще один столбец Field2
), я должен обновить приведенный выше оператор SELECT
, чтобы включить это поле в GROUP BY
пункт. В противном случае я получаю эту ошибку при выполнении операции:
" Столбец TableA.Field2 недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY "
Есть ли способ избежать этого, чтобы я мог изменить свой TableA
, не обновляя также все операторы, подобные приведенному выше?