我想根据位置,日期和组号将组成员资格聚合到一个以空格作为分隔符的字段中。
表INDSIGHT:
GROUP_IND | DATE_IND | STUDY_SITE | Subarea
01 9/9/2001 SDP Shum
01 9/9/2001 KOD North
01 9/10/2001 SDP Shum
02 9/10/2001 SDP Shum
01 9/10/2001 KOD East
表格图片有:
GROUP_IMG | DATE | STUDY_SITE | INDIVIDUAL
01 9/9/2001 SDP 003
01 9/9/2001 SDP 004
01 9/9/2001 KOD A16
01 9/9/2001 KOD 019
01 9/9/2001 KOD 021
01 9/10/2001 SDP 003
02 9/10/2001 SDP 006
我想要的是:
GROUP | DATE | STUDY_SITE | Subarea | Individuals
01 9/9/2001 SDP Shum 003 004
01 9/9/2001 KOD North A16 019 021
我使用Allen Browne的ConcatRelated函数实现了以下代码。
SELECT
i.GROUP_IND,
i.DATE_IND,
i.STUDY_SITE,
i.Subarea,
ConcatRelated(
"INDIVIDUAL",
"IMAGES",
"GROUP_IMG = '" & [GROUP_IND] & "'"
and "DATE = '" & [DATE_IND] & "'"
and "STUDY_SITE = '" & [STUDY_SITE]"'"
) AS Individuals
FROM INDSIGHT AS i;
该查询运行时没有错误,但结果不正确。结果列出了每个人,而不仅仅是特定群体的个人。
注意DATE字段是日期/时间,GROUP字段是文本。
答案 0 :(得分:2)
根据您的示例数据,我认为此查询会返回您请求的结果。
SELECT
i.GROUP_IND,
i.DATE_IND,
i.STUDY_SITE,
i.Subarea,
ConcatRelated(
"INDIVIDUAL",
"IMAGES",
"GROUP_IMG = '" & i.GROUP_IND
& "' AND [DATE] = " & Format(i.DATE_IND, "\#yyyy-m-d\#")
& " AND STUDY_SITE = '"
& i.STUDY_SITE & "'",
"INDIVIDUAL",
" "
) AS Individuals
FROM INDSIGHT AS i;
注意:
[DATE]
的字段用方括号括起来,因为它是一个保留字#
个字符ConcatRelated
的第三个参数必须是单个字符串;如果您需要调整任何内容,请小心引用如果您的实际完整数据集包含多个行,用于 GROUP_IND , DATE_IND , STUDY_SITE 和 Subarea <的相同组合/ em>,您可能希望将其设为GROUP BY
查询。创建ConcatRelated
时请保持GROUP BY
,并在GROUP BY
正常工作后将其重新添加。