2013-03-19 24 views
-1

我有一张制造商和订单的表,我需要找到2011和2012年每个制造商的订单数量。我可以获取信息,但我需要三个专栏,制作,2011年的订单和2012年的订单。我被告知我可以使用工会加入,但我无法想象它为我的生活。有任何想法吗?谢谢。使用SQL服务器中的联合连接拆分列

+0

请注明的数据库产品,您使用。 – Claude 2013-03-19 10:27:20

+0

你可以更清楚地提供rdbms使用,表结构与样本数据,也预期的结果.... – Aspirant 2013-03-19 10:33:22

回答

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 
+0

这工作完美!非常感谢。我最初使用Select Make,Count(make)'Orders', FROM Table Where datesor In('2012','2011') Group by Make; 我被告知要在这里加入工会。 – user2186028 2013-03-19 10:40:30