친애하는 프로그래머, 단일 선택 쿼리에서 한 열 값을 다른 열과 비교해야합니다. 내 쿼리로SQL의 단일 선택 쿼리에서 한 열 값을 다른 열과 비교하십시오.
은 다음과 같이 간다 : 내 경우 조건에
SELECT ATTNLOG.emp_id,
ATTNLOG.tdate,
ATTNLOG.tdate_out,
(CASE WHEN EXISTS (SELECT *
FROM tbl_emp_overtime
WHERE emp_id=ATTNLOG.emp_id
AND ot_indate=ATTNLOG.tdate)
THEN 0
ELSE 1
END) as 'STATUS'
FROM tbl_emp_attn_log ATTNLOG
WHERE ATTNLOG.emp_id=201
내가 ATTNLOG의 모든 행을 비교할 필요가 각각 상태를 제공합니다.
사실 결과는
EMP_ID TDATE TDATE_OUT STATUS
201 2012-2-26 2012-2-26 0
201 2012-2-27 2012-2-27 1
같은 행 값을 반환하고 테이블 tbl_emp_overtime는
emp_ID ot_indate
201 2012-2-27
같은 값을 가진다하지만 내 코드는
EMP_ID TDATE TDATE_OUT STATUS
201 2012-2-26 2012-2-26 1
201 2012-2-27 2012-2-27 1
처럼 제공하지만 포기하지 않는다 그 결과. 제발 도와주세요.
오류/결과는 어떻게됩니까? –
왼쪽 외부 조인을 만들고 null 값을 확인하는 것은 어떨까요? 그럴 거니? – NicolajB