不用说,我在过去几天试图理解旋转/逆旋转主题,但没有希望。我不明白什么是枢轴,什么是非枢轴。我有这张表: 这张桌子叫做
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
您将需要使用 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 函数用于获取多列并将它们转换为多行数据。
选择构建名称,一月,二月,三月,四月,五月来自
(
选择建筑物名称,日期名称(月份,帐单月份)作为月份,消耗)作为选项卡1
枢
(
(一月、二月、三月、四月、五月)月份总和(消费)为 TAB2
)