私は今、私はそれがmax(effective_end_date)
として31-DEC-4712を持っている必要があることをeffective_start_dateとeffective_End_dateを持つすべてのこれらの特定の従業員のためにチェックしたいテーブルtab_assignment_xxeffective_end_dateない31 - 12月 - 4712
date_from date_end action person_number
01-Apr-2014 31-Jul-2014 HIRE 050498
01-Aug-2014 31-Jan-2015 OTHERS 050498
01-Feb-2015 30-Jun-2015 OTHERS 050498
01-Jul-2015 15-Nov-2015 OTHERS 050498
16-Nov-2015 31-Dec-2015 OTHERS 050498
01-Jan-2016 30-JAN-2016 OTHERS 050498
01-APR-2016 31-JUL-2016 hire 83982
01-jan-2015 31-dec-4712 Others 6447
を持っていますたとえば、050498の場合、max(effective_end_date)は'31 -dec-4712 'ではなく、83982の場合も同じです。6447は正しいです。このため
私が作っ:
select * from (
select T.*,
max(EFFECTIVE_START_DATE) over (partition by PERSON_NUMBER order by EFFECTIVE_START_DATE) MAX_FROM
from tab_assignment_xx T
where 1=1
--T.PERSON_NUMBER = '093343'
AND ASSIGNMENT_TYPE='E'
)
where MAX_FROM <> to_date('31-DEC-4712')
;
しかし、これは、それは、行31 - 12月 - 4712最大EFF終了日とし、なしの両方
エラーが表示されますか?期待どおりの結果セットがありませんか?どのように動作していないのかを具体的に記述します。 –
「うまくいかない」というのは本当に役に立たない、間違った結果セットを返すか? 'RANGE UNBOUNDED PRECEDING'デフォルトになる' EFFECTIVE_START_DATEによる注文 'を削除してください。 – dnoeth
ありがとうございました:) 更新しました。 31-dec-4712なしでも両方のレコードを返す –