使用SQL Server中的联合连接拆分列

时间:2013-03-19 10:23:40

标签: sql sql-server split union

我有一个制造商和orderdate的表格,我需要找到2011年和2012年每个制造商的订单数量。我可以获得信息,但我需要三个栏目,制作,订单2011和订单2012年。我被告知我可以使用工会联盟做到这一点,但我无法理解我的生活。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

您没有提供很多详细信息,但听起来您希望数据从行转移到列中。如果是这样,那么您可以使用带有CASE表达式的聚合函数将数据输入列:

select manufacturer,
  sum(case when datepart(year, orderdate) = 2011 then 1 else 0 end) Orders_2011,
  sum(case when datepart(year, orderdate) = 2012 then 1 else 0 end) Orders_2012
from yourtable
group by manufacturer

这将按以下格式创建数据:

Manufacturer | Orders_2011 | Orders_2012
Comp1        | 100         | 78