我不想按" BimeName.IssueDate "进行分组。这个选择中的字段,我不知道该怎么做。 如果我没有在GroupBy子句中指定此字段,我将收到错误。
Msg 8120,Level 16,State 1,Line 2 Column' BimeName.IssueDate'是 在选择列表中无效,因为它不包含在任何一个中 聚合函数或GROUP BY子句。
请帮助我!
SELECT
BimeName.IssueDate,
sum(BimeName.Premium) as Permium,
TypeOfInsurances.TypeOfInsurance + ' ' +
InsuranceKinds.KindOfInsurance as KindOfInsurance,
InsuranceAgents.NameOfInsurance,
InsuranceAgents.Representation + ' ' +
InsuranceAgents.AgentCode as Agent
from
BimeName
Inner Join InsuranceKinds ON InsuranceKinds.Id = BimeName.KindOfInsuranceId
Inner Join TypeOfInsurances ON TypeOfInsurances.Id = InsuranceKinds.TypeOfInsuranceId
Inner Join InsuranceAgents ON InsuranceAgents.Id = TypeOfInsurances.InsuranceAgentId
where
BimeName.IssueDate BETWEEN '2010-01-01' AND '2017-01-30'
group by InsuranceAgents.Representation, InsuranceAgents.NameOfInsurance, InsuranceAgents.AgentCode , BimeName.IssueDate , TypeOfInsurances.TypeOfInsurance , InsuranceKinds.KindOfInsurance
答案 0 :(得分:1)
如果您像上面说的那样,不需要它,只需从选择中省略日期字段。
SELECT
sum(BimeName.Premium) as Permium,
TypeOfInsurances.TypeOfInsurance + ' ' +
InsuranceKinds.KindOfInsurance as KindOfInsurance,
InsuranceAgents.NameOfInsurance,
InsuranceAgents.Representation + ' ' +
InsuranceAgents.AgentCode as Agent
from
BimeName
Inner Join InsuranceKinds ON InsuranceKinds.Id = BimeName.KindOfInsuranceId
Inner Join TypeOfInsurances ON TypeOfInsurances.Id = InsuranceKinds.TypeOfInsuranceId
Inner Join InsuranceAgents ON InsuranceAgents.Id = TypeOfInsurances.InsuranceAgentId
where
BimeName.IssueDate BETWEEN '2010-01-01' AND '2017-01-30'
group by
InsuranceAgents.Representation,
InsuranceAgents.NameOfInsurance,
InsuranceAgents.AgentCode,
TypeOfInsurances.TypeOfInsurance,
InsuranceKinds.KindOfInsurance
您可以在where子句中包含不在分组中的字段。
答案 1 :(得分:0)
没有任何意义。想象一下,它在同一组中的字段 BimeName.IssueDate 具有不同的值,那么必须为该类别选择哪个值?应该再考虑一下。