2015-11-13 2 views
-3

Я бегу следующий запрос и получить столбец двусмысленно определен:Получение ошибки: «Колонка двусмысленно определено»

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; 
+8

Вы используете 'R' в качестве псевдонима соединения дважды - это, вероятно, должно быть исправлено. – Mureinik

+1

Вы должны включить полную ошибку сообщения. –

ответ

0

Вы использовали aliase- R дважды, поэтому ошибка,

Вы не необходимо включить таблицу дважды в JOIN и для добавления другого condition (M.FLEETID = R.FLEETID),

Вы можете дать соответствующее условие в первом occurce itselt с помощью 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; 

Надеюсь, это поможет.

Смежные вопросы