2016-08-24 3 views
0
SELECT w.well_id, 
w.WELL_NR, 
w.WELL_NM, 
w.WELL_API_NR, 
ws.WELL_SGMNT_SIDE_TRCK_CD, 
wc.WELL_CMPLTN_CD, 
wc.WELL_SGMNT_ID, 
wc.WELL_CMPLTN_ID 
FROM WELL W 
JOIN WELL_SGMNT ws 
ON ws.well_id=w.well_id 
JOIN WELL_CMPLTN wc 
ON ws.WELL_SGMNT_ID=wc.WELL_SGMNT_ID 
WHERE w.well_id ='13030'; 

このクエリの結果は以下のとおりですが、WELL_CMPLTN_IDの最大値を選択したいと考えています。 enter image description hereCantはWELL_CMPLTN_IDの最大値を選択しているようです

+0

すべての行またはグループの中で最大値ですか? – Mike

+0

どのOracleのバージョンですか? Oracle 12には、このようなタスクの迅速な作業を行う新しい機能、 'fetch first | last'があります。一般に、Oracleのバージョンを記述するのに役立ちます。 – mathguy

答えて

0

これは1

SELECT w.well_id, 
w.WELL_NR, 
w.WELL_NM, 
w.WELL_API_NR, 
ws.WELL_SGMNT_SIDE_TRCK_CD, 
wc.WELL_CMPLTN_CD, 
wc.WELL_SGMNT_ID, 
wc.WELL_CMPLTN_ID 
FROM WELL W 
JOIN WELL_SGMNT ws 
ON ws.well_id=w.well_id 
JOIN WELL_CMPLTN wc 
ON ws.WELL_SGMNT_ID=wc.WELL_SGMNT_ID 
WHERE w.well_id ='13030' AND wc.WELL_CMPLTN_ID = 
(SELECT MAX(wc.WELL_CMPLTN_ID) 
    FROM WELL W 
    JOIN WELL_SGMNT ws 
    ON ws.well_id=w.well_id 
    JOIN WELL_CMPLTN wc 
    ON ws.WELL_SGMNT_ID=wc.WELL_SGMNT_ID 
    WHERE w.well_id ='13030' 
) 
0

あなたはこれを試すことができます試してみてください。

SELECT * FROM(
    SELECT w.well_id, 
    w.WELL_NR, 
    w.WELL_NM, 
    w.WELL_API_NR, 
    ws.WELL_SGMNT_SIDE_TRCK_CD, 
    wc.WELL_CMPLTN_CD, 
    wc.WELL_SGMNT_ID, 
    wc.WELL_CMPLTN_ID 
    FROM WELL W 
    JOIN WELL_SGMNT ws 
    ON ws.well_id=w.well_id 
    JOIN WELL_CMPLTN wc 
    ON ws.WELL_SGMNT_ID=wc.WELL_SGMNT_ID 
    WHERE w.well_id ='13030 
    ORDER BY wc.WELL_CMPLTN_CD DESC 
    ) 
WHERE ROWNUM = 1; 

を、私はそれが役に立てば幸い!

関連する問題