오라클 9.2.0.8에서는 특정 필드 (LAB_SEQ)가 최대 인 레코드 집합을 반환해야합니다 (순차적 VARCHAR 배열 '0001', '0002'등) 다른 필드 (WO_NUM)마다. 최대 값을 선택하려면 내림차순으로 정렬하고 첫 번째 행을 선택하려고합니다. StackOverflow에서 찾을 수있는 유일한 방법은 상관 관계가있는 하위 쿼리를 사용하는 것입니다.Oracle에서 상관 관계 서브 쿼리 피하기
SELECT lt.WO_NUM, lt.EMP_NUM, lt.LAB_END_DATE, lt.LAB_END_TIME
FROM LAB_TIM lt WHERE lt.LAB_SEQ = (
SELECT LAB_SEQ FROM (
SELECT lab.LAB_SEQ FROM LAB_TIM lab WHERE lab.CCN='1' AND MAS_LOC='1'
AND lt.WO_NUM = lab.WO_NUM ORDER BY ROWNUM DESC
) WHERE ROWNUM=1
)
그러나,이 lt.WO_NUM 오류에 대해 잘못된 식별자를 반환한다 : 그럼 나는 각 WO_NUM에 대해 원하는 행을 얻을 수있는 외부 쿼리의 WHERE 절에서이 최대 값을 사용합니다. 연구에 따르면 ORACLE 8은 상관 관계가있는 하위 쿼리 만 한 단계 깊게 허용하며 하위 쿼리를 피하기 위해 재 작성을 제안합니다. 최대 값 선택에 대한 논의는 할 수 없습니다. 이 성명을 실행하는 데 도움이 될 경우 대단히 감사하겠습니다.
ROWNUM의 주문은 여기에별로 도움이되지 않습니다. – DCookie