【问题标题】:MS Access query: Merge multiple columns from multiple rows into single fields [duplicate]MS Access查询:将多行中的多列合并到单个字段中[重复]
【发布时间】:2019-07-22 11:48:36
【问题描述】:

我在 MS Access 2016 中有一张桌子。

如果两行的 ID 相同,我想将 Code & Course 列合并为单列。

所以输出应该是

我尝试过 STUFF、FOR XML PATH 等似乎与 MS Access 不兼容的功能。

非常感谢任何帮助。

【问题讨论】:

    标签: sql ms-access concatenation ms-access-2016


    【解决方案1】:

    在 MySQL 中有 GROUP_CONCAT 聚合函数,它完全符合您的要求,但在 Access SQL 中却没有。

    唯一的方法是使用 VBA 代码。你可以看看这里:

    http://allenbrowne.com/func-concat.html

    Allen Browne 在 VBA 中编写了一个函数来获得该结果。

    在 Access 中,您可以在 SQL 代码中调用 VBA 函数,因此这可能是解决方案:

    SELECT ID,  
           ConcatRelated("Code", "tableName", "ID = " & [ID]),
           ConcatRelated("Course", "tableName", "ID = " & [ID]) 
    FROM tableName;
    

    【讨论】:

    • 该解决方案看起来适用于合并单列而不是多列。
    • @RajKumar 我已经编辑了添加 Access SQL 的答案:您必须在 SQL 代码中调用该函数 2 次​​span>
    猜你喜欢
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多