3

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

示例源表:

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

提前感谢您提供的任何帮助或指导。

马特

4

1 回答 1

3

您可以使用按 ID 分组的聚合查询,并Max()为每个 ID 分组中的其他 4 列返回 。

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

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

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

于 2012-04-26T16:47:25.953 回答