2016-08-24 2 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 here캔트가 WELL_CMPLTN_ID의 최대 값을 선택하는 것 같습니다

+0

모든 행 또는 그룹 중에서 최대 값은? – Mike

+0

오라클의 버전은 무엇입니까? 오라클 12는 새로운 기능인'fetch first | last'를 통해 이러한 작업을 빠르게 수행합니다. 일반적으로 Oracle 버전을 언급하는 데 도움이됩니다. – mathguy

답변

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' 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; 

을 나는 그것이 도움이되기를 바랍니다!

관련 문제