У меня есть два оператора CASE, и я пытаюсь вычесть значение одного из другого, но я не могу заставить код работать. У кого-нибудь есть предложения, где я ошибаюсь?
2 утверждения CASE:
case
when "D570M"."END_DATE" IS NULL then TO_CHAR(LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')))
when "D570M"."END_DATE" > (LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY'))) then TO_CHAR (LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')))
else TO_CHAR("D570M"."END_DATE", 'DD-MON-YYYY')
end as "END DATE",
и
case
when "D570M"."START_DATE"> LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')) then TO_CHAR((LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY'))), 'DD-MON-YYYY')
else TO_CHAR("D570M"."START_DATE", 'DD-MON-YYYY')
end as "START DATE",
Когда я пытаюсь объединить эти получить ошибки (отсутствует правильная скобка). Объединенный код:
SUM(
(
case
when "D570M"."END_DATE" IS NULL then TO_CHAR(LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')))
when "D570M"."END_DATE" > (LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY'))) then TO_CHAR (LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')))
else TO_CHAR("D570M"."END_DATE", 'DD-MON-YYYY')
end as "END DATE"
) -
(
case
when "D570M"."START_DATE"> LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY')) then TO_CHAR((LAST_DAY(TO_CHAR(ADD_MONTHS(sysdate, -1), 'DD-MON-YYYY'))), 'DD-MON-YYYY')
else TO_CHAR("D570M"."START_DATE", 'DD-MON-YYYY')
end as "START DATE")
)
как «КАЛЕНДАРНЫЕ ДНИ»,