25 lines
848 B
Plaintext
25 lines
848 B
Plaintext
CREATE OR REPLACE FUNCTION FUN_GIORNI_LAVORATIVI (data_finale IN DATE, data_iniziale IN DATE)
|
|
RETURN NUMBER
|
|
-- Restituisce il numero di giorni lavorativi tra data_iniziale e data_finale
|
|
IS
|
|
appo_giorni NUMBER := NULL;
|
|
appo_data_iniziale DATE := dwh.fun_date_festive_succ (data_iniziale);
|
|
appo_data_finale DATE := dwh.fun_date_festive_succ (data_finale);
|
|
BEGIN
|
|
IF TRUNC (appo_data_finale) > TRUNC (appo_data_iniziale)
|
|
THEN
|
|
SELECT TRUNC (appo_data_finale)
|
|
- TRUNC (appo_data_iniziale)
|
|
- SUM (DECODE (tip_gio, 'F', 1, 'P', 1, 0))
|
|
INTO appo_giorni
|
|
FROM mnp.s_dim_tempo d
|
|
WHERE d.DATA >= TRUNC (appo_data_iniziale)
|
|
AND d.DATA <= TRUNC (appo_data_finale);
|
|
ELSE
|
|
appo_giorni := 0;
|
|
END IF;
|
|
|
|
RETURN appo_giorni;
|
|
END fun_giorni_lavorativi;
|
|
/
|