بتاريخ: 2 مارس 201312 سنة comment_233147 السلام عليكم اريد عمل فنكشن ترجع ايام الاجازة مستثنى منها اجازة عيد الفطر والاضحى بمعنى ان الفنكشن تاخد 4 باباراميتر هم بداية عيد الفطر ونهايته وبداية عيد الاضحى ونهايتة وترجع عدد ايام الاجازة بدون الايام المتداخلة مع اجازة الاعياد ؟ ياريت لو فى فنكشن جاهزة عند حد لان محتاجها باسرع وقت تقديم بلاغ
بتاريخ: 2 مارس 201312 سنة comment_233150 متريح دماغك واعمل تيبل تدخل فية جميع اجازات السنة الرسمية وكل متعمل اجازة شوف الايام دى فى التيبل ولا لاء تقديم بلاغ
بتاريخ: 2 مارس 201312 سنة كاتب الموضوع comment_233154 مش هينفع يا وجيه اصل انا مش عايز اعملها على فورم ده كويري تقديم بلاغ
بتاريخ: 3 مارس 201312 سنة comment_233181 CREATE OR REPLACE FUNCTION HELPDESK.IS_HOLIDAY(CH_DATE DATE) RETURN NUMBER IS WEEK_DAY VARCHAR(3) := TO_CHAR(CH_DATE,'DY'); DATE_WITHOUT_TIME DATE := TO_DATE(TO_CHAR(CH_DATE,'DD-MON-YYYY')); BEGIN IF WEEK_DAY IN ('THU','FRI') THEN RETURN (1); END IF; --Eid Al-Feter Holiday --Year 2006 IF DATE_WITHOUT_TIME BETWEEN '21-OCT-2006' AND '25-OCT-2006' --Year 2007 or DATE_WITHOUT_TIME BETWEEN '13-OCT-2007' AND '17-OCT-2007' --Year 2008 or DATE_WITHOUT_TIME BETWEEN '30-SEP-2008' AND '06-OCT-2008' --Year 2009 or DATE_WITHOUT_TIME BETWEEN '19-SEP-2009' AND '26-SEP-2009' --Year 2010 or DATE_WITHOUT_TIME BETWEEN '11-SEP-2010' AND '15-SEP-2010' --Year 2011 or DATE_WITHOUT_TIME BETWEEN '27-AUG-2011' AND '31-AUG-2011' THEN RETURN (1); --National Day Holiday ELSIF --Year 2006 DATE_WITHOUT_TIME = '23-SEP-2006' --Year 2007 or DATE_WITHOUT_TIME = '23-SEP-2007' --Year 2008 or DATE_WITHOUT_TIME = '23-SEP-2008' --Year 2009 or DATE_WITHOUT_TIME = '23-SEP-2009' --Year 2010 or DATE_WITHOUT_TIME = '22-SEP-2010' --Year 2011 or DATE_WITHOUT_TIME = '24-SEP-2011' THEN RETURN (1); --Eid Al-Adha Holiday ELSIF --Year 2006 DATE_WITHOUT_TIME BETWEEN '30-DEC-2006' AND '03-JAN-2007' --Year 2007 or DATE_WITHOUT_TIME BETWEEN '19-DEC-2007' AND '25-DEC-2007' --Year 2008 or DATE_WITHOUT_TIME BETWEEN '06-DEC-2008' AND '10-DEC-2008' --Year 2009 or DATE_WITHOUT_TIME BETWEEN '28-NOV-2009' AND '02-DEC-2009' --Year 2010 or DATE_WITHOUT_TIME BETWEEN '13-NOV-2010' AND '17-NOV-2010' --Year 2011 or DATE_WITHOUT_TIME BETWEEN '05-NOV-2011' AND '09-NOV-2011' THEN RETURN (1); END IF; RETURN (0); EXCEPTION WHEN OTHERS THEN RETURN (0); END; تقديم بلاغ
بتاريخ: 3 مارس 201312 سنة comment_233186 استخدم هذا الاستعلام SELECT COUNT ( * ) FROM ( SELECT :fir_vac + LEVEL - 1 FROM DUAL CONNECT BY LEVEL - 1 <= :end_vac - :fir_vac MINUS SELECT :fir_eid + LEVEL - 1 FROM DUAL CONNECT BY LEVEL - 1 <= :end_eid - :fir_eid) وإعطاءه الباراميتارز :fir_vac , :end_vac بداية ونهاية الأجازة:fir_eid , :end_eid بداية ونهاية العيدوإذا أردت إدخال أكثر من عيد يمكنك إضافة هذا الجزء قبل إغلاق القوس MINUS SELECT :fir_eid1 + LEVEL - 1 FROM DUAL CONNECT BY LEVEL - 1 <= :end_eid1 - :fir_eid1 ملحوظة: إذا اردت تواريخ الأيام نفسها وليس عددها يمكنك حذف أول سطر وتنفيذ الاستعلام مابين القوسين فقط تم تعديل 3 مارس 201312 سنة بواسطة أحمد جادو تقديم بلاغ
بتاريخ: 5 مارس 201312 سنة comment_233285 ماشاء اللهال query جميلة ياستاذ احمد ممكن توضح فكرتها اكتر تقديم بلاغ
بتاريخ: 5 مارس 201312 سنة comment_233287 الفكرة بسيطة ... وهي عبارة عن حصر كل الأيام خلال الأجازة المطلوبة وحصر كل أيام الأجازة أو الأجازات الرسمية وحساب أيام الفرق بينهم ... ثم حساب عددهم تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.