79083532

Date: 2024-10-13 15:50:36
Score: 0.5
Natty:
Report link

Half working

select mydate,current_day,days,working_date,to_char(working_date,'DAY') from (SELECT
    mydate,
    current_day,
    days,
    CASE
        -- Adjust for current day being Saturday or Sunday
        WHEN TRIM(current_day) = 'SATURDAY' and (days=0 or days=-1) THEN mydate - 1
        WHEN TRIM(current_day) = 'SUNDAY'   and (days=0 or days=-1)  THEN mydate - 2
        ELSE
            CASE 
                WHEN days > 0 AND TRIM(TO_CHAR(mydate + days, 'DAY')) = 'SUNDAY' THEN (mydate + days) - 2
                WHEN days > 0 AND TRIM(TO_CHAR(mydate + days, 'DAY')) = 'SATURDAY' THEN (mydate + days) - 1
                ELSE mydate + days
            END
    END AS working_date
FROM
    (
        SELECT
            mydate,
            TRIM(TO_CHAR(mydate, 'DAY')) AS current_day,
            days
        FROM
            table_name
    )
);
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Darshan Salunke