猿问

将相关行的值组合为单个串联字符串值。

将相关行的值组合为单个串联字符串值。

我试图聚合一些讲师的数据(以便很容易地显示一位讲师在一个学期中教授的课程),到目前为止,我已经接受了为每个讲师设置多个行。然而,如果我能把一位讲师的所有教学都排在一排,这对一些业务流程将是有益的。下面是一些示例数据(我的表中有更多的列,但是总的想法不会有太大变化。

TBL教官有:

    N_ID | F_Name | L_Name
    001    Joe      Smith
    002    Henry    Fonda
    003    Lou      Reed

TBL课程有:

    Course_ID | N_ID | Course_Info
    AAA         001    PHYS 1
    AAB         001    PHYS 2
    CCC         002    PHYS 12
    DDD         003    PHYS 121
    FFF         003    PHYS 224

我想返回的是:

    N_ID | First_Name | Last_Name | Course_IDs
    001    Joe          Smith       AAA, AAB
    002    Henry        Fonda       CCC
    003    Lou          Reed        DDD, FFF

我想我需要做一些事情,从tbl_guders中选择所有的N_ID,然后通过连接从tbl_Coures返回Course_ID,但是这个神奇的步骤暗示了我。有什么帮助吗?我可以通过SQL SELECT来完成这个任务吗?或者我需要使用VB吗?


狐的传说
浏览 446回答 1
1回答

慕莱坞森

这很容易用艾伦·布朗的ConcatRelated()功能。从该网页复制函数并将其粘贴到Access标准代码模块中。然后,此查询将返回您所要求的内容。SELECT     i.N_ID,     i.F_Name,     i.L_Name,     ConcatRelated(         "Course_ID",         "tbl_Courses",         "N_ID = '" & [N_ID] & "'"         ) AS Course_IDs FROM tbl_Instructors AS i;的数据类型。N_ID在两个表中从文本到数字。如果这样做,则不需要在第三个参数中使用单引号。ConcatRelated()表情。"N_ID = " & [N_ID]当你需要的时候N_ID使用前导零显示,使用Format()表情。Format(N_ID, "000")
随时随地看视频慕课网APP
我要回答