إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

كيف اقدر اعمل تريجر على الجدول لتعديل بيانات فية


3 رد (ردود) على هذا الموضوع

#1 moon14sun14

moon14sun14

    عضو نشط

  • الأعضــاء
  • 334 مشاركة

تاريخ المشاركة 05 November 2008 - 09:02 AM

مرحبا



عندي سؤال محيرني

عندي جدول لبيانات الموظفين ومن ضمن هذه البيانات يوجد حقل لمجموع الاجازات المتوفرة لكل موظف

اريد اضيف تريجر لهذا الجدول بحيث انه يعدل قيمة حقل مجموع الاجازات المتوفرة في 1/9 من كل سنة


كيييييييييف اقدر اطبق هالفكرة


ياريت حد يساعدني
مع خالص تحياتي اختكم moon14sun14

#2 ganna emad

ganna emad

    عضو

  • الأعضــاء
  • 18 مشاركة

تاريخ المشاركة 05 November 2008 - 10:56 AM

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
انت تقصد انى فى تاريخ 1-9 يتم تجميع الرصيد للموظف وتظهر المجموع ولا تقصد ايه
وضح

#3 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 05 November 2008 - 10:09 AM

هو المفروض أصلاً مفيش حقل تجميعي للأجازات المتبقية للموظف خلال سنة معينة ، لأن دة بيكون حقل محسوب وليس حقل مُخَزَن !!!

لكن هفرض أن هناك حالة خاصة لذلك !!!!

هفرض أن هناك حقل يدعي EMP_BALANCE ، كيف يمكننا إجراء تعديل علية من الـ TRIGGER !!!

CREATE OR REPLACE TRIGGER TRG_BEFORE_EMP BEFORE UPDATE ON EMP
FOR EACH ROW
DECLARE
   ID_BALANCE  NUMBER(20,3);
BEGIN
   ID_BALANCE := <جلب عدد أيام الأجازة السنوية> - <عدد الأيام المستهلكة>;
   :NEW.EMP_BALANCE := ID_BALANCE;
END;
/


بالتوفيق

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#4 moon14sun14

moon14sun14

    عضو نشط

  • الأعضــاء
  • 334 مشاركة

تاريخ المشاركة 08 November 2008 - 08:25 AM

شكرا لكم على الردود

بس يا اخ MMA

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


CREATE OR REPLACE TRIGGER TRG_BEFORE_STAFF BEFORE UPDATE ON HR_STAFF_DEATILS
FOR EACH ROW
DECLARE
ID_BALANCE NUMBER(3);
BEGIN
ID_BALANCE := (LEAVE_TOTAL + 54) ;
: HR_STAFF_DEATILS .LEAVE_TOTAL:= ID_BALANCE;
END;


HR_STAFF_DEATILS TABLE NAME

LEAVE_TOTAL COLUMN WHICH SHOULD UPDATE

54 THE STAFF TOTAL LEAVE IN EACH YEAR


بس حبيت اعرف هذا التريجر راح يكون على الجدول صح؟

طيب كيف احدد انة هذا التعديل يتم في تاريخ محدد ومعين وهو 1/9 من كل سنة وليس في اي وقت


انا ارفقت الدسكربشن تبع الجدول

ملفات مرفقة


مع خالص تحياتي اختكم moon14sun14