SELECT
COUNT([P].[pkPortfolioId]) AS [OutcomeNotSubmitted],
[CG].[GroupName]
FROM
opp.Portfolio AS [P]
INNER JOIN
[vendor].[CustomerGroup] AS [CG] ON [P].[fkCustomerGroupId] = [CG].[pkCustomerGroupId]
WHERE
fkOutcomeId IS NULL
GROUP BY
[CG].[GroupName]
该查询可以正常工作,但有多种结果,如下所示。为了使此查询正常工作,我需要复制此查询以获得所需的结果。另外还有很多连接。请记住,这是例如修剪的查询。在CASE中使用CASE中的列而没有在组中使用
我想要实现这样的结果:
NAME WIN PartialWin Loss OutcomeNotSubmitted
---------------------------------------------------------
Chain 1 0 1 0
下面这个我试图在一个查询
SELECT
CASE
WHEN [P].[fkOutcomeId] = 1 THEN COUNT([P].[pkPortfolioId])
END AS [Win],
CASE
WHEN [P].[fkOutcomeId] = 2 THEN COUNT([P].[pkPortfolioId])
END AS [PartialWin],
CASE
WHEN [P].[fkOutcomeId] = 3 THEN COUNT([P].[pkPortfolioId])
END AS [Loss],
CASE
WHEN [P].[fkOutcomeId] IS NULL THEN COUNT([P].[pkPortfolioId])
END AS [OutcomeNotSubmitted],
[CG].[GroupName]
FROM
opp.Portfolio AS [P]
INNER JOIN
[vendor].[CustomerGroup] AS [CG] ON [P].[fkCustomerGroupId] = [CG].[pkCustomerGroupId]
GROUP BY
[CG].[GroupName]
错误来实现这一目标:
Column 'opp.Portfolio.fkOutcomeId' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
当这个答案弹出时,我正在输入相同的东西。就是这个。 – Nick
@尼克我在做同样的事情哈哈。 – RToyo