【问题标题】:Unpivoting Data from Spreadsheet into Data Tables将电子表格中的数据反透视到数据表中
【发布时间】:2011-10-25 00:19:00
【问题描述】:

这里有一些背景知识,以防万一有不同/更好的方法来解决我的问题。

我有一个从 Access 导出到电子表格的查询。导出的数据是一个数据透视查询导出,我将其传递给另一个已更新表的工作人员并将其传回给我。此外,底层数据实际上是来自 SQL 2005 的链接表。我提到这一点是因为我不害怕我们 SQL Server 更新这些数据,但由于导出来自 Access,我认为最好更新来自他们的。

这是表数据和导出的基本结构:I

Data Table
==========
PK_1      PK_2      VALUE
------------------------------
G1        SG1       .33
G1        SG2       .44
...
G2        SG1       .33
G2        SG2       .44
...
G3        SG1       .33
G3        SG2       .44
...

..这就是导出的数据在 Excel 中的样子。

Pivot Data Exported to Excel
============================

          G1        G2       ...
SG1       .33       .33      ...
SG2       .44       .44      ...
SG3       .55       .55      ...
...       ...       ...      ...

我的问题是如何将更新的电子表格数据反透视到需要更新的数据表中? Access 中是否有反透视操作,可能是导入过程的一部分?

【问题讨论】:

    标签: sql sql-server sql-server-2005 ms-access import


    【解决方案1】:

    MS Access 没有 UNPIVOT,但您可以通过多个 UNION 查询来做到这一点

    http://www.access-programmers.co.uk/forums/showthread.php?t=204468

    How to convert fields into rows through SQL in MS Access 2007 or MS SQL Server 2005

    以下是您的数据示例:

    SELECT PK_2, "G1" as "PK_1", G1 as [Value]
    FROM Table
    UNION
    SELECT PK_2, "G2" as "PK_1", G2 as [Value]
    FROM Table
    

    【讨论】:

    • 感谢您的简单回复。我对您的两个答案都有些了解,但是,我不确定是否还有其他方法可以实现这一目标。我认为我最好的选择是第一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多