2012-04-26 96 views
3

我有一个类似于下面显示的示例源表的表,我想基于ID字段进行折叠(请参阅示例折叠表)。我可以用代码做到这一点,但它膨胀了我的Access数据库超过2 GB的最大大小,所以我希望有一种方法可以用查询来完成。我应该注意到,对于任何给定的ID值,我不需要担心在字段One,Two,Three或Four中有多个记录具有值。折叠MS Access表

示例源表:

ID One Two Three Four 
1 My  Is 
1     Matt 
1  Name 
2 My  Is  Matt 
2  Name 
3 My Name Is  Matt 

实施例折叠的表:

ID One Two Three Four 
1 My Name Is Matt 
2 My Name Is Matt 
3 My Name Is Matt 

预先感谢提供任何帮助或指导做好。

马特

+0

代码如何膨胀到2GB?我们在谈论多少条记录? – 2012-04-26 15:53:32

+0

你应该有一个“分裂”数据库作为良好的实践,数据表在一个,基本上代码在另一个。我对代码推动它超过2GB的DJ感到惊讶,但这会阻止它。 – 2012-04-27 07:55:27

回答

3

可以使用汇总查询哪些组由ID,并返回Max()每个每个ID分组内的那些其它4列。

SELECT 
    ID, 
    Max(One), 
    Max(Two), 
    Max(Three), 
    Max(Four) 
FROM tblSource 
GROUP BY ID; 

如果要将结果存储在新表中,请将查询转换为“生成表查询”。如果您已经创建了目标表并希望将这些结果添加到它,请将查询转换为“附加查询”。

如果您接近2 GB的db文件大小限制,请首先使用Compact &修复以丢弃未使用的空间。如果compact没有给你足够的工作空间,创建另一个db文件并将新的(折叠)表存储在那里。您可以从原始数据库链接到它。

+0

完美的作品。这正是我需要的。 – 2012-04-27 20:20:02

+2

@Matt Crisler:很高兴你找到你正在寻找的东西。请将问题标记为已回答 - 这将给予HansUp功劳,并将问题从“未答复”列表中移除 – Johanness 2012-04-28 14:24:23