SELECT * FROM TABLE1
WHERE WEEKENDDT = (SELECT MAX(ENDDTE)FROM TABLE2)
이 선택은 데이터를 반환하지 않습니다. 두 테이블 모두 특정 날짜에 대한 데이터를 가지고 있습니다. MAX (ENDDTE)는 02-MAY-12에 대한 데이터가 있고 WEEKENDDT에도 데이터가 있습니다. 02- MAY-12입니다.왜이 절은 where 절이 결과를 반환하지 않는지 비교합니다.
SELECT * FROM TABLE1
WHERE WEEKENDDT = (SELECT MAX(ENDDTE)FROM TABLE2)
이 선택은 데이터를 반환하지 않습니다. 두 테이블 모두 특정 날짜에 대한 데이터를 가지고 있습니다. MAX (ENDDTE)는 02-MAY-12에 대한 데이터가 있고 WEEKENDDT에도 데이터가 있습니다. 02- MAY-12입니다.왜이 절은 where 절이 결과를 반환하지 않는지 비교합니다.
date
의 time
부분이 다른 경우에 발생할 수 있습니다. Table1
WEEKENDDT
에서의 값 02-09-2012 18:47
및 Table2
의 MAX(ENDDTE)
있는 경우
예를 들어, 02-09-2012 00:00
, 그들은 같지 않음 있으며, 따라서 =
와 비교 될 수 없다. 당신이 time
부분을 절단 할 경우
, 단지 TRUNC()
을 사용
SELECT * FROM TABLE1
WHERE TRUNC(WEEKENDDT) = (SELECT TRUNC(MAX(ENDDTE)) FROM TABLE2)
는 여기
DEMO입니다.
쿨! 나는 SQL Fiddle을 몰랐다. –
날짜에는 시간 구성 요소가 있습니다. 정확히 일치하는 두 값이 일치합니까? 내 추측은 그렇지 않다는 것입니다. – Ben
두 컬럼의 데이터 타입이 모두'datetime'인지 확인하십시오. –
'datetime'은 Oracle 데이터 타입이 아닙니다. – eaolson