转换Access表中的范围数据

时间:2011-05-23 08:36:33

标签: database ms-access transform

我在Access数据库中有一个表,如下所示;

Name | Range   | X  | Y  | Z
------------------------------
A    | 100-200 | 1  | 2  | 3
A    | 200-300 | 4  | 5  | 6
B    | 100-200 | 10 | 11 | 12
B    | 200-300 | 13 | 14 | 15
C    | 200-300 | 16 | 17 | 18
C    | 300-400 | 19 | 20 | 21

我尝试编写一个将其转换为以下格式的查询。

Name | X_100_200 | Y_100_200 | Z_100_200 | X_200_300 | Y_200_300 | Z_200_300 | X_300_400 | Y_300_400 | Z_300_400 
A    | 1         | 2         | 3         | 4         | 5         | 6         |           |           | 
B    | 10        | 11        | 12        | 13        | 14        | 15        |           |           |
C    |           |           |           | 16        | 17        | 18        | 19        | 20        | 21

尝试了一段时间后,我能提出的最佳方法是编写一堆短查询,为每个Range选择数据,然后使用Union查询再次将它们组合在一起。问题是,对于这个例子,我已经显示了3列(X,Y和Z),但实际上我还有更多。随着我提出的SQL数量的增加,访问开始变得紧张。

有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

答案很简单。只需使用Access Pivotview。发现很难将结果导出到Excel。