我在不同日期有成員註冊信息表。我需要一個查詢來查找成員信息。根據日期範圍獲取記錄
鑑於它會檢查的日期,如果用戶在該日期登記或不
如果是它返回日期
,如果沒有它返回最新招生一行。
結果中有一個額外的狀態欄,顯示成員是否註冊或者截至今天。我正在使用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
我想基於輸入日期成員的信息和狀態。
例如
a)如果輸入的日期是2005/1/1那麼就應該給我01和05
01 123456789 01-JAN-13 31-DEC-13 Inactive
05 987654321 01-FEB-13 31-DEC-99 Active
b)若輸入的是2006年1月1日,那麼它應該給我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
d)如果輸入是2014年1月1日,那麼它應該給我01和05
01 123456789 01-JAN-13 31-DEC-13 Inactive
05 987654321 01-FEB-13 31-DEC-99 Active
不明白你的日期。 99 1999或2099? – 2014-12-04 21:35:09