2011-09-08 5 views
0

에 따라 기록을 얻을 수있는 PostgreSQL의 쿼리입니다 B) tblemp사용 사례 나는 두 개의 표 A) tblresign이 있고 조건

tblresign는 열 leavingdate 에있는 tblresign tblemp 기본 키

를 참고 한 외국 키가 tblemp에 retiredate가 있습니다

퇴거 날짜가 없으면 퇴직 날짜가 표시되고 retiredate가있는 경우 퇴실 날짜가 주어지면 어떤 날짜가 필요한지를 알 수있는 조건을 확인하는 쿼리를 작성하고 싶습니다. 둘 다 현재 있음

수 이것에 대해 그 선택

+0

아마도 출력 결과를 원하는지에 대한 간단한 예제를 제공해야합니다. – Edmund

답변

1

내가 질문을하지 있는지 이해 PostgreSQL의 쿼리,하지만 작성하는 방법에 대한 하나의 도움 : tblresign에는 행이 직원을 위해 존재하지 않는 경우

SELECT e.emp_name, 
     e.id, 
     coalesce(r.leavingdate, e.retiredate) as some_date 
FROM tblemp e 
    LEFT JOIN tblresign r ON e.id = r.emp_id 

을 또는 해당 행의 leavedate가 null이면 retiredate가 표시됩니다.

두 날짜가 모두 존재할 때 표시 할 날짜를 명시하지 않았습니다. 사용자의 필요에 맞게 coalesce() 함수에서 순서를 변경해야 할 수도 있습니다. 좀 더 복잡한 규칙을 가지고 있다면 CASE 문을 사용하여이를 처리 할 수 ​​있습니다. 그러나 우리는 그 대답에 더 많은 정보가 필요합니다.

관련 문제