using subquery how can i calculate working days in a month?
Answer Posted / lokesh
-- Table which maintains the Holidays list.
CREATE TABLE HOLIDAYS_TABLE
(
HOLIDAY_NAME VARCHAR2(20),
HOLIDAY_DATE DATE
);
-- procedure to Calculate the Number of Working days in a
period
CREATE OR REPLACE FUNCTION CALC_WORKING_DAYS(START_DATE IN
DATE, END_DATE IN DATE)
RETURN NUMBER
IS
v_stdate DATE := TO_DATE(START_DATE);
v_eddate DATE := TO_DATE(END_DATE);
v_k NUMBER := 0;
v_cnt NUMBER := 0;
v_bk_hldys NUMBER := 0;
BEGIN
-- To Find the total number of days in the period
v_k := v_eddate - v_stdate ;
-- To Exclude Weekends from the total number of days in
the period
FOR i IN 1..v_k LOOP
IF to_char(v_stdate,'Dy') NOT IN ('Sat','Sun') THEN
v_cnt := v_cnt +1;
END IF;
v_stdate := v_stdate + 1;
END LOOP;
-- To find the Public Holidays which are not on Weekends in
the given Period
SELECT COUNT(DISTINCT(HOLIDAY_DATE)) INTO v_bk_hldys FROM
HOLIDAYS_TABLE where HOLIDAY_DATE BETWEEN TO_DATE
(START_DATE) AND TO_DATE(END_DATE) AND to_char
(HOLIDAY_DATE,'Dy') NOT IN ('Sat','Sun');
-- To Subtract the public holidays which are not on
Weekends
v_cnt := v_cnt - v_bk_hldys;
RETURN v_cnt;
END;
/
| Is This Answer Correct ? | 4 Yes | 0 No |
Post New Answer View All Answers
describe transaction-safe table types in mysql : sql dba
what is a database transaction? : Sql dba
Why are aggregate functions called so?
List out the acid properties and explain?
Is ms sql is free?
What is db journal file?
What does trigger mean in psychology?
What is sql*loader?
what is a join? : Sql dba
Which join is default?
What is a table?
What is the difference between truncate and drop statements?
Why cannot I use bind variables in ddl/scl statements in dynamic sql?
What is difference between mysql and postgresql?
What is a call statement? Explain with an example.