Soyez le premier à donner votre avis sur cette source.
Snippet vu 5 593 fois - Téléchargée 16 fois
WITH MYDATE AS (SELECT ( Trunc( :AD_DAT_DEB ) + Level - 1 ) JOUR FROM Dual CONNECT BY Level <= Round( Trunc( :AD_DAT_FIN ) - Trunc( :AD_DAT_DEB ) ) + 1) , ANNEES AS (SELECT ( To_Char( :AD_DAT_DEB, 'RRRR' ) + Level - 1 ) ANNEE FROM Dual CONNECT BY Level <= Round( To_Char( :AD_DAT_FIN, 'RRRR' ) - To_Char( :AD_DAT_DEB, 'RRRR' ) ) + 1) , ANNEES_H AS (SELECT ( To_Char( :AD_DAT_DEB, 'YYYY', 'NLS_CALENDAR=''Arabic Hijrah''' ) + Level - 1 ) ANNEE_H FROM Dual CONNECT BY Level <= Round( To_Char( :AD_DAT_FIN, 'YYYY', 'NLS_CALENDAR=''Arabic Hijrah''' ) - To_Char( :AD_DAT_DEB, 'YYYY', 'NLS_CALENDAR=''Arabic Hijrah''' ) ) + 2) , JOURS_FERIES_H AS (SELECT ' ras el 3am ' NHAR , To_Date( '01/01/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) J_F_H , ANNEE_H FROM ANNEES_H UNION ALL SELECT ' 3ied Kbir 1' NHAR , To_Date( '10/12/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) J_F_H , ANNEE_H FROM ANNEES_H UNION ALL SELECT ' 3ied Kbir 2' NHAR , To_Date( '11/12/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) J_F_H , ANNEE_H FROM ANNEES_H UNION ALL SELECT ' 3ied sghir 1' NHAR , To_Date( '01/10/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) J_F_H , ANNEE_H FROM ANNEES_H UNION ALL SELECT ' 3ied sghir 2' NHAR , To_Date( '02/10/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) J_F_H , ANNEE_H FROM ANNEES_H UNION ALL SELECT ' mouled ' NHAR , To_Date( '12/03/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) J_F_H , ANNEE_H FROM ANNEES_H UNION ALL SELECT ' 3ied sghir chak ' NHAR , CASE WHEN To_Char( To_Date( '01/10/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) - 1 , 'dd' , 'NLS_CALENDAR=''Arabic Hijrah''' ) = 30 THEN To_Date( '30/09/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) ELSE To_Date( '03/10/' || ANNEE_H, 'dd/mm/yyyy', 'NLS_CALENDAR=''Arabic Hijrah''' ) END J_F_H , ANNEE_H FROM ANNEES_H) , JOURS_FERIES AS (SELECT To_Date( '01/01/' || ANNEE, 'dd/mm/yyyy' ) J_F, '01 Janvier' NHAR FROM ANNEES UNION ALL SELECT To_Date( '14/01/' || ANNEE, 'dd/mm/yyyy' ) J_F, '14 Janvier' NHAR FROM ANNEES UNION ALL SELECT To_Date( '25/07/' || ANNEE, 'dd/mm/yyyy' ) J_F, '25 Juillet' NHAR FROM ANNEES UNION ALL SELECT To_Date( '13/08/' || ANNEE, 'dd/mm/yyyy' ) J_F, '13 Août' NHAR FROM ANNEES UNION ALL SELECT To_Date( '01/05/' || ANNEE, 'dd/mm/yyyy' ) J_F, '1 Mai ' NHAR FROM ANNEES UNION ALL SELECT To_Date( '09/04/' || ANNEE, 'dd/mm/yyyy' ) J_F, '9 Avril' NHAR FROM ANNEES UNION ALL SELECT To_Date( '20/03/' || ANNEE, 'dd/mm/yyyy' ) J_F, '20 Mars' NHAR FROM ANNEES) SELECT Count( 1 ) NB_JOURS FROM MYDATE WHERE To_Char( JOUR, 'D' ) NOT IN (6, 7) AND JOUR NOT IN (SELECT J_F FROM JOURS_FERIES) AND JOUR NOT IN (SELECT J_F_H FROM JOURS_FERIES_H);
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.