【发布时间】:2021-09-20 20:03:29
【问题描述】:
我有一个这样的RawDataTable:
| Date | Country | Value | Accurate |
|---|---|---|---|
| 2000 | ABW | 4 | true |
| 2001 | ABW | 9 | true |
| 2002 | ABW | 8 | true |
| 2000 | GBR | 1 | false |
| 2001 | GBR | 3 | true |
| 2002 | GBR | 4 | false |
我在 SQL Server 中旋转它以获得以下格式:
| Date | ABW | GBR |
|---|---|---|
| 2000 | 4 | 1 |
| 2001 | 9 | 3 |
| 2002 | 8 | 4 |
但我也希望在回报中包含Accurate 列,也许分散开,以便每个国家/地区也有自己的Accurate 列,如下所示:
| Date | ABW | GBR | ABW Accurate | GBR Accurate |
|---|---|---|---|---|
| 2000 | 4 | 1 | true | false |
| 2001 | 9 | 3 | true | true |
| 2002 | 8 | 4 | true | false |
到目前为止,我正在使用下面的查询对其进行旋转,但实际上不知道我想要做的事情是否可行,也不知道从哪里开始修改查询:
SELECT *
FROM
(SELECT
[Date],
[Country],
[Value]
FROM
RawDataTable) CountryVals
PIVOT
(SUM([Value])
FOR [Country] IN ([ABW], [GBR])
) AS PivotTable
我将Accurate 作为第一列select 的第四列。我尝试将另一个枢轴加入到查询的末尾,但这没有用,我尝试在枢轴选择中添加该 col ......实际上我什至无法让枢轴为Accurate 工作,因为它是一个bit 类型而不是 decimal 例如所以不确定用什么代替 SUM
【问题讨论】:
标签: sql sql-server tsql