SQL将行合并到列中

时间:2018-03-28 23:58:00

标签: sql sql-server sql-server-2014

使用Microsoft SQL(Server 12.0.4100.1)我有一个简单的查询:

SELECT OrgLevel3, OrgLevel4, complete, COUNT(*)
FROM #reconcile
GROUP BY OrgLevel3, OrgLevel4, complete
ORDER BY 1, 2, 3

完成' column的类型为BIT,因此为1或NULL。因此,对于此查询,我为每个OrgLevel3 / OrgLevel4配对获得两行。我宁愿得到的是一行,其中包含#34;#Complete"第二列" #Incmplete"。

这可能吗?

2 个答案:

答案 0 :(得分:1)

结合总和和案例条件。

flex: 0 auto

答案 1 :(得分:0)

您可以使用CaseIIF而不是SUM

SELECT OrgLevel3, 
 OrgLevel4, 
 sum(iif(complete=1,1,0)) TotalComplete,
 sum(iif(complete IS NULL,1,0)) TotalInComplete,
 COUNT(*)
FROM #reconcile
GROUP BY OrgLevel3, OrgLevel4
ORDER BY 1, 2, 3