従業員テーブルがあります。私はそのような方法ですべての従業員のデータを取得する必要があります。今日クエリを実行すると、前年の12月1日(現在の1年目、つまり2010年12月1日)から今日(4月21日)までに働いていたすべての従業員のデータを取得する必要があります。クエリの実行日が12月(今日の例は12月15日)の場合、クエリは現在の年の12月1日(2011年12月1日)から12月15日までのデータを取得する必要があります。
この場合、誰かがIFまたはCASEステートメントを書き留めるのを手伝ってもらえますか。私はifステートメントをどのように機能しないかを書きました。このIfまたはCaseステートメントをemployee_timestampの開始日として使用したいと思います。これはここで可能かどうか。
SELECT e.*
FROM EMPLOYEE e
WHERE e.employee_timestamp > (SELECT TO_DATE(TO_CHAR(CONCAT('12-01-', EXTRACT(YEAR FROM SYSDATE)-1)),'MM/DD/YYYY') AS startdate
FROM DUAL)
AND e.employee_timestamp < (SELECT SYSDATE FROM DUAL)
IF
((SELECT SYSDATE FROM DUAL)) > (select to_date(to_char(concat('11-30-', extract(YEAR FROM sysdate))),'MM/DD/YYYY') as Startdate From DUAL)
THEN (select to_date(to_char(concat('12-01-', extract(YEAR FROM sysdate))),'MM/DD/YYYY') as Startdate From DUAL)
ELSE
(select to_date(to_char(concat('12-01-', extract(YEAR FROM sysdate)-1)),'MM/DD/YYYY') as Startdate From DUAL)
END IF;