我有一个包含以下数据的表
AgentID AgentName ReportDate LOBName SubAct CountA CountB
------------------------------------------------------------------
AgentSA1 Agent SA1 04/30/2020 SubActivity SA1 2 22
AgentSA1 Agent SA1 04/30/2020 SubActivity SA2 2 11
AgentSA1 Agent SA1 05/02/2020 SubActivity SA1 1 7
AgentSA2 Agent SA2 04/30/2020 SubActivity SA1 2 6
AgentSA2 Agent SA2 04/30/2020 SubActivity SA2 2 5
AgentSA2 Agent SA2 05/02/2020 SubActivity SA2 1 3
我想要类似的结果。
AgentID AgentName ReportDate LOBName SubAct CountA CountB CalculatedClo
---------------------------------------------------------------------------------
AgentSA1 Agent SA1 04/30/2020 SubActivity SA1 2 22 4
AgentSA1 Agent SA1 04/30/2020 SubActivity SA2 2 11 4
AgentSA1 Agent SA1 05/02/2020 SubActivity SA1 1 7 1
AgentSA2 Agent SA2 04/30/2020 SubActivity SA1 2 6 4
AgentSA2 Agent SA2 04/30/2020 SubActivity SA2 2 5 4
AgentSA2 Agent SA2 05/02/2020 SubActivity SA2 1 3 1
最后一列是计算出的一列(CalculatedClo
),该列应具有基于报告日期的分组和SubAct的计算。
有人可以帮助我产生这些价值吗?
答案 0 :(得分:1)
如果您尝试将sum
列CountA
用作计算列,则可以像下面这样简单地使用join
:
;with temp as
(
SELECT ReportDate,
SubAct,
SUM(CountA) Summed
FROM YourTable
GROUP BY ReportDate,
SubAct
)
SELECT t.*, x.Summed as CalculatedCol
FROM YourTable t
JOIN temp x ON t.SubAct = x.SubAct AND t.ReportDate = x.ReportDate
order by AgentID, ReportDate;
请找到演示 here 。