SQL Server 在新表中使用透视/逆透视

问题描述 投票:0回答:2

不用说,我在过去几天试图理解旋转/逆旋转主题,但没有希望。我不明白什么是枢轴,什么是非枢轴。我有这张表: 这张桌子叫做

Natalie_Playground

BuildingName    BillingMonth    Consumption

Building1       1/1/2011        59318

Building2       1/1/2011        6962

Building3       1/1/2011        204300

Building4       1/1/2011        69600

Building5       2/1/2011        47316

Building6       2/1/2011        162300

Building7       2/1/2011        7122

Building8       2/1/2011        7444

我不知道是否必须使用pivot或unpivot才能使我的表格看起来像这样:

BuildingName    January      February    March  .... December

Building1       59318        47316

Building2       6962         162300

Building3       204300       162300

Building4       69600        7444
sql sql-server pivot unpivot
2个回答
5
投票

您将需要使用 PIVOT 函数将数据行转换为列:

select buildingname, January, February, March, April
from
(
  select buildingname,
    datename(month, billingmonth) month,
    consumption
  from yourtable
) d
pivot
(
  sum(consumption)
  for month in (January, February, March, April)
) piv;

请参阅SQL Fiddle with Demo。 UNPIVOT 函数用于获取多列并将它们转换为多行数据。


0
投票

选择构建名称,一月,二月,三月,四月,五月来自 ( 选择建筑物名称,日期名称(月份,帐单月份)作为月份,消耗)作为选项卡1 枢 (
(一月、二月、三月、四月、五月)月份总和(消费)为 TAB2 )

© www.soinside.com 2019 - 2024. All rights reserved.