尝试了将多行组合成一行的几种方法,没有运气。我正在使用SQL 2008.过去没有使用过Pivot,所以这有点新鲜。 Pivot功能不起作用或我可能看错了。这是需要组合成一行的当前输出。
+--------------+-------------+----------------+-----------------------------------------+----------------------+
| Agent_ID | EvalForm_ID | 1.0 Compliance | Reg_Fail | Marketing Guidelines |
+--------------+-------------+----------------+-----------------------------------------+----------------------+
| 16738 | 225777 | | | |
| 16738 | 225777 | | | 1 |
| 16738 | 225777 | | 1 | |
+--------------+-------------+----------------+-----------------------------------------+----------------------+
期望的输出:
Agent_ID EvalForm_ID 1.0 Compliance Reg_Fail Marketing Guidelines
16738 225777 1 1
这里也是我正在使用的orginial代码...再次,我已经尝试了everthing。如果您能提供帮助,我们将不胜感激。
Select DISTINCT TR.Agent_ID
,TR.EvalForm_ID
,TR.[1.0 Compliance]
,TR.REg_Fail,TR.[Marketing Guidelines]
FROM #TrendResults AS TR
WHERE TR.EvalForm_ID ='225777'
Group BY TR.Agent_ID,TR.EvalForm_ID,TR.Reg_Fail,TR.[Marketing Guidelines],TR.[1.0
Compliance]
答案 0 :(得分:0)
根据您的示例数据和所需结果,您需要应用具有GROUP BY的聚合函数:
Select TR.Agent_ID
,TR.EvalForm_ID
,Max(TR.[1.0 Compliance]) [1.0 Compliance]
,Max(TR.REg_Fail) REg_Fail
,Max(TR.[Marketing Guidelines]) [Marketing Guidelines]
FROM #TrendResults AS TR
WHERE TR.EvalForm_ID ='225777'
GROUP BY TR.Agent_ID, TR.EvalForm_ID;