2

如何在 Access 2003 中转置行和列?我需要在多个表上执行此操作。

(我改写了我的问题,因为反馈告诉我,我最初的表述方式令人困惑。)

每个表有 30 个字段和 20 条记录。
假设我的字段是姓名、重量、邮政编码、Quality4、Quality5、Quality6 到 Quality30,这是最喜欢的电影。假设每条记录都描述了一个人。人是爱丽丝,贝蒂,查克,戴夫,爱德华等,通过汤米..

我可以轻松地制作这样的报告:

  >>Alice...120....35055---etc, etc, etc...Jaws  
  Betty....125....35212...etc, etc, etc...StarWars  
  etc  
  etc  
  etc  
  Tommy...200...35213...etc, etc, etc...Adaptation  

但我想做的是转置这些行和列,以便我的报告显示如下

  >>Alice........Betty......etc,etc,etc...Tommy  
  120.........125........etc, etc, etc...200  
  35055.....35212....etc, etc, etc...35213  
  etc   
  etc  
  etc  
  Jaws...StarWars..etc,etc,etc...Adaptation

谢谢你的帮助。

4

4 回答 4

2

感谢大家的帮助。
我相信我已经找到了答案,我把它的链接放在这里以防其他人将来需要它:http: //support.microsoft.com/kb/202176
(这适用于 Access 2003。)

于 2009-10-01T22:39:29.813 回答
2

Access实际上有一个转置动词crosstab。如果您搜索“crosstab”,您会找到好东西,这是更常见的数据库方式。喜欢这篇知识库文章。通用数据库答案通常涉及转置和汇总。如果您需要非汇总交叉表,可以完成,但您可能需要自定义函数。

于 2009-10-01T01:02:24.370 回答
0

我遇到了同样的问题,最后我求助于将表格导出到 Excel,进行转置,然后再次将其导入回 Access。

于 2010-04-24T20:12:17.713 回答
0
TRANSFORM SUM(Weight)
SELECT "Dummy Data"
FROM myTable 
GROUP BY "Dummy Data"
PIVOT [Name]

这有帮助吗?

编辑:这假设名称不会重复。
即,给定名称的记录不会超过 1 条。

于 2009-10-01T02:15:29.507 回答