다른 날짜의 회원 등록 정보가있는 테이블이 있습니다. 회원 정보를 찾는 쿼리가 필요합니다. 더는 최신 등록 행을 반환하지 않는 경우 네는 그 날짜를날짜 범위를 기준으로 레코드 받기
을 반환하는 경우 사용자가
를 해당 날짜에 등록하거나하지 않을 경우
는 확인합니다 날짜를 감안할 때.
결과에 회원이 현재 등록되어 있는지 여부를 보여주는 추가 상태 열이 있습니다. 나는 그것을 CASE 문을 사용하여 계산하고있다.
여기 각 회원에 대해 최신 정보를 표시하는 쿼리가 있습니다. 나를 진정한 상태로 되돌려 놓을 수 있도록 협조하고 수정하는 데 도움이 필요합니다.
select *
from (
select id, member_id, enroll_date, end_date,
CASE
WHEN sysdate between enroll_date and end_date THEN 'Active'
ELSE 'Inactive'
END
Status,
row_number() over (partition by member_id order by enroll_date desc) rn
from myView
)where rn = 1
테이블 구조는
ID MEMBER_ID ENROLL_DATE END_DATE
01 123456789 01-JAN-13 31-DEC-13
02 123456789 01-JAN-06 31-DEC-06
03 123456789 01-JAN-11 31-DEC-11
04 987654321 01-JAN-08 31-DEC-12
05 987654321 01-FEB-13 31-DEC-99
06 987654321 01-JAN-13 31-JAN-13
내가 입력 날짜에 따라 회원의 정보 및 상태를 확인하고 싶습니다. 입력 날짜 후 2005년 1월 1일 경우 입력 2006년 1월 1일 후는주지 말아야 예
들어는
a) 그것은) 나 01와 05
01 123456789 01-JAN-13 31-DEC-13 Inactive
05 987654321 01-FEB-13 31-DEC-99 Active
B 줘야 저 02 및 05
02 123456789 01-JAN-06 31-DEC-06 Inactive
05 987654321 01-FEB-13 31-DEC-99 Active
c) 입력 후 2013년 1월 1일 인 경우 나 01와 06
01 123456789 01-JAN-13 31-DEC-13 Inactive
06 987654321 01-JAN-13 31-JAN-13 Inactive
01,235,164 줘야 d)에 입력 한 후 2014년 1월 1일 경우는 이것은 당신이 주어진 맞는 행에 대해 RN = 1을 할당 할 수 있습니다 까다로운 순서입니다 나에게 01 및 05
01 123456789 01-JAN-13 31-DEC-13 Inactive
05 987654321 01-FEB-13 31-DEC-99 Active
날짜를 이해할 수 없습니다. 99 1999 년 또는 2099 년? –