2009-10-01 15 views
2

如何转置Access 2003中的行和列?我有多个表,我需要这样做。如何转置Access 2003中的行和列?

(我已经改写我的问题,因为反馈告诉我,它混淆了我最初是如何说的。)

每个表都有30场和20条记录。
可以说我的领域是名字,重量,邮政编码,质量4,质量5,质量6到质量30,这是最喜欢的电影。 让我们说,每个记录描述一个人。人民群众是爱丽丝,贝蒂,查克,戴维,爱德华等通过汤米..

我可以很容易地做出这样的报告:

>>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 

感谢您的任何帮助。

+0

刚刚删除了“交易”标签,这里没有涉及交易... – MartinStettner

回答

2

访问实际上有一个转置动词,交叉表。如果您搜索“crosstab”(这是更常见的数据库方式),那么您会发现很好的东西。像这样Knowledge Base article。通用数据库答案通常涉及转置和总结。如果你需要一个非概要交叉表,它可以完成,但你可能需要一个自定义函数。

+0

感谢您的回复。我想我虽然不明白。 知识库文章讨论总结,但我想要做的是转换行到列和列到行。我不想总结。当然,这一定是人们做的事!任何其他想法? (我没有技能做客户功能。)谢谢。 –

+0

交叉表向导将引导您完成整个过程。 –

+0

感谢您的第二回应。但恐怕我还是不明白。我搜索并阅读了Crosstab,并使用了Crosstab向导,我只是简单地看不到转换东西的方式 - 将所有行更改为列,将所有列更改为行。要改述我想做的事情:我需要将30个字段显示为行(而不是列),将20个字符显示为列(而不是行)。感谢您的帮助:) –

0
TRANSFORM SUM(Weight) 
SELECT "Dummy Data" 
FROM myTable 
GROUP BY "Dummy Data" 
PIVOT [Name] 

这有帮助吗?

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

+0

感谢您的回复。我有很多很多的字段/列,而不仅仅是名称和权重,还有更多的记录/行。 (我有20多个独特的名字。)我只是试图让我的例子非常简单。如果我有Field1到Field30和20个唯一名称,而不是字段Weight和Age,我将如何为您的查询提供词语。换句话说,我所要做的就是转置,即为我的报告,将我的30列变成30行,将我的20行变成30列。感谢您的帮助。 –

+0

我的意思是把我的20行变成20列 –

+0

请编辑你的问题来描述你的真实模式,以及你希望看到的样本数据和预期输出。我会尽力去看,如果可以做到的话。一旦你编辑了这个问题,在这里张贴你的意见让我注意到它。 – shahkalpesh

2

感谢大家的帮助。
我相信我已经发现了答案,我把链接到它在这里情况下别人需要它的未来:http://support.microsoft.com/kb/202176
(这适用于Access 2003中)

+0

您选择了哪两种方法? –

0

我有同样的问题,在最后,我采取了将表格导出到Excel的方法,进行转置,然后再次将其导回到Access。

相关问题