我有一个类似这样的查询
SELECT
totalvolume = SUM(volume),
totalusage = SUM(usage),
percentage = CAST(SUM(usage) * 100 / SUM(volume) as decimal (10,2)),
YEAR
FROM
table1
我得到了如下表格。
|totalvolume|totalusage|percentage|Year
|--------------------------------------
| 100 | 50 | 50.00 |2016
| 200 | 50 | 25.00 |2015
我的目标是使用PIVOT
将列表表格变成这样:
|Type |2015 |2016 |
|------------------------ |
| totalvolume| 200 | 100 |
| totalusage | 50 | 50 |
| percentage |25.00|50.00 |
所以我决定首先使用 a) UNPIVOT
创建这个表:
Type | Value | year
-------------------
totalvolume |100 |2016
totalusage |50 |2016
percentage |50.00 |2016
totalvolume |200 |2015
totalusage |50 |2015
percentage |25.00 |2015
但在我的UNPIVOT
查询中
SELECT
Type, Value, Year
FROM
<my table query>
UNPIVOT
(value FOR Type IN (totalvolume, totalusage, percentage))
我的SQL中出现了一个错误:
“百分比”列的类型与UNPIVOT列表中指定的其他列的类型冲突
那么是否有解决该问题而不更改数据类型的解决方案呢?
如果我排除百分比列,我可以使用pivot得到所需的视图,代码如下:
|Type |2015 |2016 |
|------------------------ |
| totalvolume| 200 | 100 |
| totalusage | 50 | 50 |
但我也需要百分比行。
提前感谢。