الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مساعدة فى عمل فنكشن ترجع ايام الاجازة مستثنى منها اجازة عيد الفطر والاضحى

Featured Replies

بتاريخ:

السلام عليكم
اريد عمل فنكشن ترجع ايام الاجازة مستثنى منها اجازة عيد الفطر والاضحى بمعنى ان الفنكشن تاخد 4 باباراميتر هم بداية عيد الفطر ونهايته وبداية عيد الاضحى ونهايتة وترجع عدد ايام الاجازة بدون الايام المتداخلة مع اجازة الاعياد ؟ ياريت لو فى فنكشن جاهزة عند حد لان محتاجها باسرع وقت

بتاريخ:

متريح دماغك واعمل تيبل تدخل فية جميع اجازات السنة الرسمية وكل متعمل اجازة شوف الايام دى فى التيبل ولا لاء

بتاريخ:
  • كاتب الموضوع

مش هينفع يا وجيه اصل انا مش عايز اعملها على فورم ده كويري

بتاريخ:

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;

بتاريخ:

ممكن تعدل علي الفانكشن كما يناسب احتياجك

بتاريخ:

استخدم هذا الاستعلام

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



ملحوظة: إذا اردت تواريخ الأيام نفسها وليس عددها يمكنك حذف أول سطر وتنفيذ الاستعلام مابين القوسين فقط

تم تعديل بواسطة أحمد جادو

بتاريخ:

ماشاء الله
ال query جميلة ياستاذ احمد ممكن توضح فكرتها اكتر

بتاريخ:

الفكرة بسيطة ... وهي عبارة عن حصر كل الأيام خلال الأجازة المطلوبة وحصر كل أيام الأجازة أو الأجازات الرسمية وحساب أيام الفرق بينهم ... ثم حساب عددهم

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.