MS Access查询:将多行中的多列合并为单个字段

时间:2019-02-28 14:19:54

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

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

enter image description here

如果两行的ID相同,我想将“代码和课程”列合并为单列。

所以输出应该是

enter image description here

我尝试了STUFF,FOR XML PATH等功能,这些功能似乎与MS Access不兼容。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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