收到错误:"Column ambiguously defined "



我正在运行以下查询,并得到定义不明确的列:

SELECT 
    S.SUB_ID
    ,M.FLEETID
    ,M.TGID
    ,M.TGNO
    ,R.TGTYPE
    ,R.MODEID
    ,COUNT(1)
FROM 
    INF_SUBSCRIBER_ALL S
INNER JOIN 
    INF_TALKGROUP_MEMBER M ON S.SUB_ID = M.SUBID
INNER JOIN 
    INF_TALKGROUP_MODE_RELATION R ON M.TGID = R.TGID
INNER JOIN 
    INF_TALKGROUP_MODE_RELATION R ON M.FLEETID = R.FLEETID
WHERE 
    S.SUB_STATE = 'B01'
    AND M.STATUS = 'M01'
GROUP BY 
    S.SUB_ID, M.FLEETID, M.TGID, M.TGNO, R.TGTYPE, R.MODEID;

您已经使用别名-R两次了,这就是为什么出现错误,

为了添加另一个conditionM.FLEETID = R.FLEETID)、,您不需要在JOIN中包含两次表

您可以使用AND运算符在第一次出现时给出相应的条件。

SELECT 
    S.SUB_ID
    ,M.FLEETID
    ,M.TGID
    ,M.TGNO
    ,R.TGTYPE
    ,R.MODEID
    ,COUNT(1)
FROM 
    INF_SUBSCRIBER_ALL S
INNER JOIN 
    INF_TALKGROUP_MEMBER M ON S.SUB_ID = M.SUBID
INNER JOIN 
    INF_TALKGROUP_MODE_RELATION R ON M.TGID = R.TGID AND M.FLEETID = R.FLEETID
WHERE 
    S.SUB_STATE = 'B01'
    AND M.STATUS = 'M01'
GROUP BY 
    S.SUB_ID, M.FLEETID, M.TGID, M.TGNO, R.TGTYPE, R.MODEID;

希望这能有所帮助。

最新更新