2015-11-13 60 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中以添加另一個表格conditionM.FLEETID = R.FLEETID),

可以使用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; 

希望這會有所幫助。