JOIN更改列单元格中的字符串

时间:2017-03-18 17:49:50

标签: sql sql-server

我正在处理一个查询,它根据JOIN关联从不同的表中获取2列:

        SELECT ','+ca.attr_val   AS [text()]
        FROM [CONTRACT_ATTR] ca
        JOIN GM_PROGRAM gm
        ON ta.GM_PROG = gm.item_id
        WHERE CA.Item_Id = CO.Item_Id
            AND ca.field_id = 239
        ORDER BY co.item_name
        FOR XML PATH ('') ta
    ), 2, 1000) GM_PROG

enter image description here

第二列有数字,这些数字是查找表上的键。

enter image description here

我试图找出如何将数字更改为正确的item_name。

我认为它与子字符串中的查询有关:

OnCollisionEnter2D

这就是我所处的位置。我没有跑,我认为这是因为它试图引用。

我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:1)

即将结束,您只需要将ca.attr_val更改为gm.item_name,您的加入引用ta而不是ca(错误我猜),并且可能会排序子查询中gm.item_name而不是co.item_name

SELECT DISTINCT co.item_name
    ,SUBSTRING((
            SELECT ',' + gm.item_name AS [text()]
            FROM [CONTRACT_ATTR] CA
            inner join GM_PROGRAM gm
              ON ca.attr_val = gm.item_id
            WHERE CA.Item_Id = CO.Item_Id
                AND ca.field_id = 239
            ORDER BY gm.item_name
            FOR XML PATH('')
            ), 2, 1000) GM_PROG
FROM [dbo].[CONTRACT] CO;