Может ли кто-нибудь помочь мне понять, что не так со следующим синтаксисом T-SQL?
SELECT
p.CompanyId, COUNT(*) as PolicyCount, c.CompanyId, c.CompanyName
FROM
dbo.Policy p
INNER JOIN dbo.Company c ON p.CompanyId = c.CompanyId
WHERE
p.PolicyIssuingDate BETWEEN @StartDate AND @EndDate
GROUP BY
p.PolicyId
Я получаю следующую синтаксическую ошибку:
Column 'dbo.Policy.CompanyId' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Есть предложения?
UPDATE:
Хорошо, благодаря вашим комментариям, ребята, я понял ... Вот решение:
SELECT
p.CompanyId, COUNT(p.PolicyId) as PolicyCount, c.CompanyName
FROM
dbo.Policy p
INNER JOIN dbo.Company c ON p.CompanyId = c.CompanyId
WHERE
p.PolicyIssuingDate BETWEEN @StartDate AND @EndDate
GROUP BY
p.CompanyId, c.CompanyName