SELECT CASE WHEN ( SELECT 1 FROM per_resource_exceptions pre WHERE trunc(pre.start_date_time) = last_working_day ) = 1 THEN last_working_day - 2 --If last working day is exceptional holiday ELSE decode( to_char(last_working_day, 'D'), '2', last_working_day - 3, --If LWD is Monday '3', last_working_day - 1, --If LWD is Tuesday '4', last_working_day - 1, --If LWD is Wednesday '5', last_working_day - 1, --If LWD is Thursday '6', last_working_day - 1, --If LWD is Friday last_working_day) END second_last_working_day ,to_char(last_working_day, 'YYYY-MM-DD') last_working_day FROM ( SELECT CASE -- IF last day is public holiday WHEN ( SELECT 1 FROM per_calendar_events_vl pce WHERE pce.category = 'PH' --AND pce.coverage_type = 'O' AND trunc(pce.start_date_time) = trunc( decode( to_char(last_day(to_char(trunc(sysdate))), 'D'), --get the last day of the month and then get the day of the week, i.e. 1 to 7 '1', last_day(to_char(trunc(sysdate))) - 2, --If day of week is 1, i.e. Sunday then last day would be obtained by substracting 2 '7', last_day(to_char(trunc(sysdate))) - 1, --If day of week is 7, i.e. Saturday then last day would be obtained by substracting 1 last_day(to_char(trunc(sysdate))) ) ) ) = 1 THEN CASE --Check if previous working day is sunday WHEN to_char( ( SELECT trunc( decode( to_char(last_day(sysdate), 'D'), '1', last_day(to_char(trunc(sysdate))) - 2, '7', last_day(to_char(trunc(sysdate))) - 1, last_day(to_char(trunc(sysdate)))) ) - 1 --substract -1 to get previous working day FROM fnd_cal_day WHERE trunc(report_date) = trunc(sysdate) ), 'D' ) = 1 THEN ( SELECT ( trunc( decode( to_char(last_day(sysdate), 'D'), '1', last_day(to_char(trunc(sysdate))) - 2, '7', last_day(to_char(trunc(sysdate))) - 1, last_day(to_char(trunc(sysdate))) ) )-1 ) --substract -1 to get previous working day - 2 --substract -2 to get second last working day FROM fnd_cal_day WHERE trunc(report_date) = trunc(sysdate) ) ELSE ( SELECT trunc( decode( to_char(last_day(sysdate), 'D'), '1', last_day(to_char(trunc(sysdate))) - 2, '7', last_day(to_char(trunc(sysdate))) - 1, last_day(to_char(trunc(sysdate))) ) ) FROM fnd_cal_day WHERE trunc(report_date) = trunc(sysdate) ) END -- IF last day is not public holiday ELSE ( --Get last working SELECT trunc( decode( to_char(last_day(sysdate), 'D'), --get the last day of the month and then get the day of the week, i.e. 1 to 7 '1', last_day(to_char(trunc(sysdate))) - 2, --If day of week is 1, i.e. Sunday then last day would be obtained by substracting 2 '7', last_day(to_char(trunc(sysdate))) - 1, --If day of week is 7, i.e. Saturday then last day would be obtained by substracting 1 last_day(to_char(trunc(sysdate)))) ) FROM fnd_cal_day WHERE trunc(report_date) = trunc(sysdate) ) END last_working_day FROM dual )
All Categories
All Categories
Account Hierarchy1
Accounting Flexfields1
API2
ASCII1
BIP6
BIP Refresh Time1
Call Fusion BIP Report2
Change Password1
Code Combinations2
Compute Instance1
Database1
DB Adapter2
Development1
EBS3
ESS Jobs3
Examine1
FBDI3
Fusion BIP2
GIT2
GL3
GL Journals1
GL_DAILY_CONVERSION_TYPES1
GL_DAILY_RATES1
ICS1
Identity Domain1
Integrations1
Java1
Journal Import1
Keys1
LookupTypeLOV1
LOV1
LOVs1
MultiPartAPIs1
NVL2
NVL in OIC2
OCI4
OCI Compute2
OCI Events Service1
OCI Free Tier2
OCI Notifification Service1
OIC Mapper1
Oracle9
Oracle ADF17
Oracle APEX1
Oracle Apps55
Oracle Apps R122
Oracle BIP5
Oracle Cloud7
Oracle Cloud Free Tier1
Oracle cloud Infrastructure4
Oracle Cloud Security1
Oracle Cloud VM1
oracle ebs3
Oracle ERP1
Oracle ERP Adapter2
Oracle ERP Cloud6
Oracle financials2
Oracle Forms1
Oracle Fusion44
Oracle Fusion ERP10
Oracle Fusion Financials10
Oracle Integration Cloud3
Oracle OAF14
Oracle OCI9
Oracle OIC18
Oracle SOA 12c10
Oracle SQL9
Oracle VBCS1
Oracle VBS2
Oracle Visual Builder Cloud Service1
Oracle Visual Builder Studio2
Oracle Workflow Notifications1
Others10
Properties1
R121
Register BIP as ESS Job1
Reset Password1
Responsibility1
REST1
Site Map1
SOAP2
SOAP API2
SOAP UI3
SQL7
SQL Queries6
SQL Query2
SSH1
Value Sets1
VBCS1
Virtual Machine1
Virtual Machines1
XML1
XSLT1
Show more
Show less
Comments
Post a Comment