Hi Guys,
I am trying to bring back a value to use as a starting month for a reporting period.
I am on ORACLE 9i and my CASE statement causes my app to hang.
The case statement I am using is as follows
case when (SUBSTR(SYSDATE, 4, 2) = SUBSTR(MAX(EMPIT.PIT_RUN_DATEC), 4, 2))
AND (TO_CHAR(SYSDATE, 'dd/mm/yyyy') >= TO_CHAR(MAX(EMPHS.PHQ_PAY_DATEC), 'dd/mm/yyyy'))
then to_char(add_months(last_day(SYSDATE), -13), 'yy-mm')
when (MAX(EMPIT.PIT_RUN_DATEC) = LAST_DAY(MAX(EMPIT.PIT_RUN_DATEC)))
AND (TO_CHAR(SYSDATE, 'dd/mm/yyyy') >= TO_CHAR(MAX(EMPHS.PHQ_PAY_DATEC), 'dd/mm/yyyy'))
then to_char(add_months(last_day(SYSDATE), -13), 'yy-mm')
else to_char(add_months(last_day(SYSDATE), -14), 'yy-mm')
end
The strange thing is, when I change the second condition in the two 'when' clauses, I get back a value but its not correct ofcourse because I have changed my original rule. This is the changed syntax:
case when (SUBSTR(SYSDATE, 4, 2) = SUBSTR(MAX(EMPIT.PIT_RUN_DATEC), 4, 2))
AND (SUBSTR(SYSDATE, 4, 2) = SUBSTR(SYSDATE, 4, 2))
then to_char(add_months(last_day(SYSDATE), -13), 'yy-mm')
when (MAX(EMPIT.PIT_RUN_DATEC) = LAST_DAY(MAX(EMPIT.PIT_RUN_DATEC)))
AND (SUBSTR(SYSDATE, 4, 2) = SUBSTR(SYSDATE, 4, 2))
then to_char(add_months(last_day(SYSDATE), -13), 'yy-mm')
else to_char(add_months(last_day(SYSDATE), -14), 'yy-mm')
end
Can anyone see a problem with my first case statement?
Kind Regards
