【问题标题】:Transpose data with MS Access SQL使用 MS Access SQL 转置数据
【发布时间】:2015-07-29 11:04:54
【问题描述】:

我有一个从 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,但我不知道如何使用它,尤其是因为我不想转置前两列。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    我想你可以用union all做你想做的事:

    select year, quarter, 'P1' as value, p1
    from table1
    union all
    select year, quarter, 'P2' as value, p2
    from table1;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2019-11-29
      • 2010-10-08
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多