我在下面给出了SalesExVAT
,BranchNo
和FiscalWeek
每个分支每周只有1条记录:
Select
sa.BranchNo
,sa.FiscalWeek
,sa.SalesExVAT
From
dbo.SalesAggregateWeek sa
Where
sa.FiscalYear = 2016
我希望以透视格式
显示我已尝试过以下内容,
Select
MyData.BranchNo
From
(Select
sa.BranchNo
,sa.FiscalWeek
,sa.SalesExVAT
From
dbo.SalesAggregateWeek sa
Where
sa.FiscalYear = 2016) MyData
Pivot
( sum(MyData.salesexvat)
For
MyData.FiscalWeek In (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52) )
期望的结果将是FiscalWeek
作为顶部的标题,BranchNo
显示在左下方,SalesExVAT
信息作为数据。
我还欢迎任何关于我必须采取哪些措施来纠正我的代码的建议,因为我还没有使用过PIVOT。
答案 0 :(得分:2)
最终查询看起来像:
Select *
From
(Select
sa.BranchNo
,sa.FiscalWeek
,sa.SalesExVAT
From
dbo.SalesAggregateWeek sa
Where
sa.FiscalYear = 2016) P
Pivot
(Sum (SalesExVAT)
For FiscalWeek In
( [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],
[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],[32],
[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],[47],
[48],[49],[50],[51],[52] )
) As pvt ;
关键点:
财政周刊价值必须全部在[Square Brackets]
Pivot必须使用别名'As pvt'并完成;
如果有人知道我可以写FiscalWeek Between 1 And 52
的方式,而不是在几周内说出来,请评论你的答案。
答案 1 :(得分:1)
Here an option using a dynamic cross tab pivot...
application.properties
The print output...
EXPOSE=$port