SQL - 如何使第一列成为结果集的标题?

时间:2015-08-20 11:05:02

标签: sql pivot

所以我有这张表来显示库存水平:

select * 
  from Stock

会给:

Branch     Product    ActualStock   OrderedStock
------------------------------------------------
London     Product1       3              2
Paris      Product1       9              4
Rome       Product1       6              3
London     Product2       3              2 
Paris      Product2       9              4
Rome       Product2       6              3

我希望能够以这种格式编写查询以查看每个分支的ActualStock

Product      London    Paris    Rome
-------------------------------------
Product1        3        9        6

我该怎么做?有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这会奏效。

按产品分组使用,然后计算组中每个分支的ActualStock总和。

SELECT 
     [Product]= Product,
     [London] =SUM( CASE WHEN Branch ='London' THEN ActualStock ELSE 0 END ),
     [Paris] = SUM( CASE WHEN Branch ='Paris' THEN ActualStock ELSE 0 END ),
     [Rome] =SUM( CASE WHEN Branch ='Rome' THEN ActualStock ELSE 0 END )
FROM Stock
GROUP BY Product

试试这个SQL Fiddle