SQL,结合结果

时间:2010-06-13 15:15:57

标签: sql ms-access

我正在使用Access并拥有此SQL

SELECT land.id, land.official_name, vaksiner.vaksiner
FROM land INNER JOIN (vaksiner INNER JOIN land_sykdom ON vaksiner.id = land_sykdom.sykdom)        ON land.kort = land_sykdom.land
ORDER BY land.official_name

SQL给我一个这样的结果:

id    official_name    vaksiner

1     a                A
1     a                C    
2     b                A
2     b                B
2     b                C

但我希望将结果组合起来,使它看起来像这样:

id    official_name    vaksiner

1     a                A, C
2     b                A, B, C

1 个答案:

答案 0 :(得分:1)

参见Allen Browne的Concat相关函数(Concatenate values from related records

如果您将现有查询保存为 qryVaksinerRaw ,则可以构建一个这样的新查询,以生成您所追求的结果。

SELECT DISTINCT
    id,
    official_name,
    ConcatRelated("vaksiner","qryVaksinerRaw","id = " & [id]) AS vaksiner
FROM qryVaksinerRaw;

要将功能添加到模块,请从以

开头的网页复制功能
Public Function ConcatRelated(strField As String, _

并继续包括

End Function

然后将复制的文本粘贴到您的模块中。

注意ConcatRelated()将可用于从Access内部运行的查询。但是,像任何自定义VBA函数一样,它不能用于从Access外部运行的查询(如经典的ASP,.Net等)。