使用MS Access SQL转置数据

时间:2015-07-29 11:04:54

标签: sql ms-access

我有一个从MS Access SQL查询返回的数据集,看起来像表1。

表1

Year    Quarter P1  P2
2013    Q1      1   6
2013    Q2      2   9
2013    Q3      5   1
2013    Q4      6   4
2014    Q1      4   3
2014    Q2      8   2
2014    Q3      6   5
2014    Q4      2   4
2015    Q1      2   3
2015    Q2      1   1

我想将数据转置为表2。

表2

Year    Quarter Value   P1
2014    Q3      P1      6
2014    Q3      P2      5
2014    Q4      P1      2
2014    Q4      P2      4
2015    Q1      P1      2
2015    Q1      P2      3
2015    Q2      P1      1
2015    Q2      P2      1

我一直在浏览互联网并了解我需要在查询中使用TRANSPOSE,但我无法弄清楚如何使用它,特别是因为我不想转置两个第一列。

1 个答案:

答案 0 :(得分:1)

我认为你可以用union all

做你想做的事
select year, quarter, 'P1' as value, p1
from table1
union all
select year, quarter, 'P2' as value, p2
from table1;

您可能希望添加where子句以仅获取所需结果中的行。