得到错误:"列模糊定义"

时间:2015-11-13 20:54:20

标签: sql

我正在运行以下查询并且模糊地定义了列:

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;

1 个答案:

答案 0 :(得分:0)

您已使用别名 - R两次,这就是错误

的原因

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

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

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;

希望这有帮助。