2016-08-24 11 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

什麼版本的Oracle? Oracle 12有一項新功能,「抓取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; 

我希望它能幫助!