MS-Access查询以在另一列中收集逗号分隔的结果

时间:2014-07-23 14:20:47

标签: sql ms-access access-vba

如果我有一个名为活动的表格:

ActivitiesTable

..和另一张名为导师的表:

TutorsTable

如果我要在活动表中的LearnerId / InstanceId记录上为导师姓名做一个简单的LEFT JOIN,我会得到如下结果:

QueryResult

(上述结果为Sql):

SELECT Activities.LearnerId, Activities.InstanceId, 
Activities.LastName, Activities.FirstName, Activities.Activity, 
Tutors.TutorLastName, Tutors.TutorFirstName
FROM Activities 
LEFT JOIN Tutors ON (Activities.InstanceId = Tutors.InstanceId) 
AND (Activities.LearnerId = Tutors.LearnerId);

我希望保留活动表中的记录数(即查询结果为4条记录而不是7条记录)。

我还希望每个与LearnerId / InstanceId记录相匹配的导师都在另一个名为 Tutors(s)的专栏中收集,其中相关导师的名字全部列在一个带逗号的字段中分开每个导师。换句话说,结果如下所示:

PrefQueryResult

...是否可以在SQL中执行此操作,或者只能在VBA中实现?

1 个答案:

答案 0 :(得分:0)

使用VBA功能很有可能得到你想要的东西。

Allen Browne为此操作提供了详细记录的代码。它被称为“连接相关记录中的Vale”。浏览一下。 http://allenbrowne.com/func-concat.html