将电子表格中的数据展开到数据表中

时间:2011-08-11 13:45:37

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

以下是一些背景信息,以防万一有不同/更好的方法来解决我的问题。

我有一个我从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中是否有一个unpivot操作,可能是导入过程的一部分?

1 个答案:

答案 0 :(得分: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