2016-06-17 5 views
0

以下のSQL文では、ROUTER_IDを渡しており、RTR_HEADERレコードの最新バージョンと関連するRTR_SEQUENCEが返されることを期待しています。Oracle 8i SQLコマンドが正しく終了していません

SELECT 
    RH.ROUTER_ID, 
    RH.DESCRIPTION, 
    RSEQ.SEQUENCE_NUMBER 
FROM 
    CFG.RTR_SEQUENCE RSEQ 
INNER JOIN CFG.RTR_HEADER RH 
    ON RSEQ.ROUTER_ID = RH.ROUTER_ID 
    AND RSEQ.ROUTER_REV = RH.ROUTER_REV 
WHERE 
    RH.ROUTER_REV = (SELECT MAX(RVER.ROUTER_REV) FROM CFG.RTR_HEADER RVER WHERE RVER.ROUTER_ID = RH.ROUTER_ID) 
AND RH.ROUTER_ID = 'XXXXX-XXX' 
ORDER BY RH.ROUTER_ID, RSEQ.SEQUENCE_NUMBER 

私はINNER JOINをでSQLコマンドが正常にインテリジェンスポインティングとを終了していない得続けます。 INNER JOINとそれに関連するテーブルとフィールドを省略すると、SQL文が実行されます。最近のバージョンのRTR_HEADERレコードを取得しますが、一致するRTR_HEADERも必要です。私はSO上の他の既存の回答の多くを見て、決断なしに彼らの決議を考慮しました。

Visual Representation of Relationship

Intelisence displaying error

+0

構文が正常に見えます。 ROUTER_IDは数字ではない文字列であると仮定します。 – kevinsky

+0

正しい。文字列値。 –

+0

8iに入っていないか、8iの構文を確認していますか?内部結合をコンマで置き換え、ONの後の条件をwhere節に移動します。 – Mottor

答えて

0
SELECT 
    RH.ROUTER_ID, 
    RH.DESCRIPTION, 
    RSEQ.SEQUENCE_NUMBER 
FROM 
    CFG.RTR_SEQUENCE RSEQ,CFG.RTR_HEADER RH 
WHERE RSEQ.ROUTER_ID = RH.ROUTER_ID 
    AND RSEQ.ROUTER_REV = RH.ROUTER_REV 
    AND RH.ROUTER_REV = (SELECT MAX(RVER.ROUTER_REV) FROM CFG.RTR_HEADER RVER WHERE RVER.ROUTER_ID = RH.ROUTER_ID) 
AND RH.ROUTER_ID = 'XXXXX-XXX' 
ORDER BY RH.ROUTER_ID, RSEQ.SEQUENCE_NUMBER 
+0

ありがとうございました!働く次回は、Oracleのバージョンを想定しないようにします。 –

+0

@GeovaniMartinez左右の古い構文については、こちらを参照してください。https://asktom.oracle.com/pls/asktom/f?p=100:11:0:::P11_QUESTION_ID:6585774577187 – Mottor

関連する問題