【发布时间】:2015-02-13 18:29:39
【问题描述】:
我试图弄清楚如何根据特定列的总和除以另一列的总和来旋转我的数据”。这是我到目前为止到达的地方,但 PIVOT 查询给了我错误:
USE MyDatabase
SELECT [PropertyCode],
[Market],
[JANUARY 2015],
[FEBRUARY 2015],
[MARCH 2015]
FROM (SELECT [PropertyCode],
[Market],
[MTH],
[GN],
[PkgRev]
FROM HOLDINGS
) a
PIVOT (Sum([PkgRev])/Sum([GN])
FOR [MTH] IN ([JANUARY 2015],
[FEBRUARY 2015],
[MARCH 2015])) as pvttable
ORDER BY [PROPERTYCODE]
上述查询中的 HOLDINGS 是一个 VIEW 表,而 PkgRev 和 GN 是该 VIEW 表中的列。在执行 PkgRev 列的 SUM 除以 GN 列的 SUM 后,我需要我的 Pivot 查询返回值。
以下是数据示例(来自 HOLDINGS 视图表):
PropertyCode ID GN MTH Pkg Rev Market
A 1 10 Jan-15 95,652 United Kingdom
A 3 20 Jan-15 95,652 United Kingdom
A 12 24 Feb-15 81,610 France
A 15 14 Feb-15 47,606 France
B 16 18 Jan-15 38,153 France
B 20 28 Feb-15 69,391 United Kingdom
B 22 32 Jan-15 107,990 Germany
B 25 28 Feb-15 76,696 United Kingdom
C 26 4 Jan-15 18,961 Germany
C 27 26 Jan-15 56,522 South Africa
C 29 20 Feb-15 27,826 India
C 31 18 Jan-15 33,661 France
C 32 14 Jan-15 26,039 Germany
预期输出如下:
PropertyCode Market Jan-15 Feb-15
A France 0 3,400
A United Kingdom 6,377 0
B France 2,120 0
B Germany 3,375 0
B United Kingdom 0 2,609
C France 1,870 0
C Germany 1,607 0
C India 0 1,391
C South Africa 2,174 0
【问题讨论】:
-
能否提供一些示例数据和预期结果
-
我刚刚用预期的输出更新了帖子。谢谢。
-
还添加了一些示例数据。
标签: sql-server pivot