الانتقال إلى المحتوى
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

بتاريخ:

ارجو المساعده في حل المشكلة التالية

اود فرز عدد ايام الاجازة علما ان الاجازة تمتد خلال شهران على سبيل المثال

عندي اجازة لموظف من تاريخ 28/1/2013 ولغاية 17/2/2013 اود ان يعطيني

عند طلب تقرير شهر (1) عدد ايام الاجازة 4 ايام

وعند طلب تقرير شهر (2) عدد ايام الاجازة 17 يوم

 

مع الشكر

بتاريخ:

السلام عليكم

استخدم

دالة نهاية الشهر لايجاد عدد الايام من بداية التاريخ حتى اخر يوم فى نفس الشهرlast_day

بالنسبة لاحالتك يبقى الوضع كلاتى

اخر يوم فى شهر يناير هو 31

اذن عدد الايام=31-28

اخر يوم فى الاجازة فى شهرفبراير هو 17 واول يوم هو 1

اذن 18-1

لان طبع اول يوم فى كل شهر هو رقم 1

all day=last_day(jan)-28+18-1

معكم ولكم نتواصل

بتاريخ:
u can give this function first date of u month and end date if u make grouping by month 
trunc(paramter_date,'MM')  "First Day of   Month"
last_day(paramter_date)    "Last Day of Month"
u need year also -- just month cant be right
 
 
 
/******************************/
 
FUNCTION GET_VACATION_DAYS (P$EMP_ID       NUMBER,
                            P$FROM_DATE    DATE,
                            P$TO_DATE      DATE)
   RETURN NUMBER
IS
   V_NUMBERS      NUMBER;
   V_COUNT        NUMBER;
   V_START_SATE   DATE;
   V_CHECK        VARCHAR2 (200);
BEGIN
   V_START_SATE := P$FROM_DATE;
   V_COUNT := (P$TO_DATE - P$FROM_DATE) + 1;
   V_NUMBERS := 0;
 
   FOR I IN 1 .. V_COUNT
   LOOP
      V_CHECK := NULL;
 
      SELECT 'X'
        INTO V_CHECK
        FROM VACATION_TABLE
       WHERE V_START_SATE BETWEEN DATA_START_COLUMN AND DATA_END_COLUMN
             AND EMP_ID = P$EMP_ID;
 
      IF V_CHECK IS NOT NULL
      THEN
         V_NUMBERS := V_NUMBERS + 1;
      ELSE
         V_NUMBERS := V_NUMBERS;
      END IF;
 
      V_START_SATE := V_START_SATE + 1;
   END LOOP;
 
 
   RETURN V_NUMBERS;
END;

 

تم تعديل بواسطة mo7asb

بتاريخ:

ودى كويرى   هييه فكرة بس الاحسن تعملها فانكشن 

 

 

 

 SELECT TRUNC ( DATE_S ,'mm')  , COUNT (1) COUNT_DAYS ,EMPLOYEE_ID
FROM
 (SELECT    D_COUNT.DATE_S   , EMP.EMPLOYEE_ID , EMP.HIRE_DATE
   FROM EMPLOYEES   EMP,
  ( SELECT  TO_DATE (  :F_DATE ,'dd-mm-yyyy')  + LEVEL -1 DATE_S FROM DUAL        
   CONNECT BY  LEVEL  <= TO_DATE (  :T_DATE ,'dd-mm-yyyy') -TO_DATE ( :F_DATE ,'dd-mm-yyyy') +1 )  D_COUNT 
WHERE --EMPLOYEE_ID =198  and
 D_COUNT.DATE_S  BETWEEN START_VACATION_COLUMN   AND    END_VACATION_COLUMN
)
 GROUP BY  TRUNC (DATE_S ,'mm') ,EMPLOYEE_ID
 ORDER BY    EMPLOYEE_ID
;  
بتاريخ:
  • كاتب الموضوع

اخواني شاكر لكم جميعا

لكن هل يمكن وضعها في جملة select اذا سمحتوا

علما اني اريد ان ادخل له الشهر فيعطيني عدد ايام اجازات الموظف خلال هذ الشهر

على المثال الموجود اذا استفسرت عن دواد شهر (كانون اول) يعطيني عدد ايام اجازات الموظف 4 ايام

واذا استفسرت عن دوام شهر (شباط) يعطيني عدد ايام اجازات الموظف 17 يوما

بتاريخ:

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

 

where TRUNC (DATE_S ,'mm') ,=:P$date

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

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

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

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

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

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.