mohamed1975 بتاريخ: 12 نوفمبر 2005 تقديم بلاغ مشاركة بتاريخ: 12 نوفمبر 2005 (معدل) هل احد يستطيع المساعده فى عمل فانكشن لارجاع عدد ايام يوم معين فى شهر معين من سنه معينهمثلا فى 12/نوفمبر/2005نجد ان يوم السبت تكرر اربع مراتويوم الاربعاء تكرر خمس مرات--------------------------------------فانكشن آخر لمن يستطيع المساعده فيه وهو هام جدا يفيد فى برامج شئون الموظفينوهو كيف يمكن عمل طريقه ما او فانكشن ما او تريجر بحيث عند ترقى موظف معين لوظيفه معينه ودخول موظف من مرؤوسيه مكانه السؤال هو كيف يمكن عمل تحديث لكود المديرexcample :empno ename mgr كود الموظف اسم كود المدير كود الموظف اسم كود المدير ---------------------------------- --------------------------------- 002 احمد 066 محمد 002 090 رمضان 002 075 على 066 095 محمود 090 077 ابراهيم 066 096 رضا 090 079 نرمين 066 098 شكرى 090 الفكره هى :مثلا(002 احمد) طلع معاش وترقى مكانه ( 066 محمد ) وترقى مكان محمد (075 على)وهكذا لو ان لدينا تسلسل هرمى كبير ............................اى ان الصوره النهائيه تصبح كما يلىكود الموظف اسم كود المدير كود الموظف اسم كود المدير ---------------------------------- --------------------------------- 066 محمد 075 على 066 090 رمضان 066 077 ابراهيم 075 095 محمود 090 079 نرمين 075 096 رضا 090 098 شكرى 090----------------------------------------------------------------------------------------------ارجو الرد لمن لديه الخبره ،،،،،شاكرين حسن تعاونكم،،،،،،، تم تعديل 12 نوفمبر 2005 بواسطة mohamed1975 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 12 نوفمبر 2005 تقديم بلاغ مشاركة بتاريخ: 12 نوفمبر 2005 الاخ الكريم بالنسبة للسؤال الاول فهو غير واضحبالنسبة للشق الثاني فيمكنك عمل ذلك وذلك بعمل lov حيث تختار منها وظيفة الموظف يعني تعملة update لحالة الوظفيفة وهكذايعني عمل select بالشكل التاليselect mgr,mgr_desc from your_table اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamed1975 بتاريخ: 13 نوفمبر 2005 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 نوفمبر 2005 مشكور يا اخى على المشاركه ولكن احب ان اوضح لك الفكرهبالنسبة للشق الثانى فأنه من المستحيل ان اذهب لكل موظف على حده واعمل له تحديث لكود المدير هذه عمليه مرهقه للغايه الفكره هو اننى اريد طريقه او تريجر معين يعمل تحديث لكل السجلات فى آن واحد عند حدوث تغيير فى كود المدير مثل ما ذكرت سلفاوالمشاكل ستظهر فى التسلسل الهرمىوعلاقات الجدول بنفسه فلا يمكن ان يكون موظف مدير نفسه مثلابالنسبة للشق الاول من سؤالى فهو واضح الفكره هى اريد عدد تكرار يوم معين اختاره يعنى مثلا يوم الجمعه تكرر 4 مرات فى شهر نوفمبر سنة 2005ونفس يوم الجمعه تكرر 5 مرات فى شهر ابريل 2005 اريد فانكشن يرجع لى عدد تكرار هذا اليوم فى اى شهر اختاره من اى سنهوانا حاولت واليك الكود الذى ساعدنى به احد الاصدقاءلكن يحدث به بعض الاختلافاتCREATE OR REPLACE FUNCTION NUM (DAYNAME IN VARCHAR2, THEDATE IN DATE)RETURN NUMBERIS AA NUMBER(1) ; BB NUMBER(1) := 0 ; CC number(1); DD DATE ; EE DATE ; FF VARCHAR2(100) ; GG VARCHAR2(10) ; THE_MONTH VARCHAR2(10) ;BEGIN FF := TO_CHAR(THEDATE,'MM-YYYY'); FF := '01-' || FF; DD := TO_DATE(FF,'DD-MM-YYYY'); THE_MONTH := TO_CHAR(DD,'MON'); GG := TO_CHAR(DD,'MON'); IF GG = THE_MONTH THEN BB := BB + 1; CC:=BB; END IF; WHILE BB<6 LOOP EE := NEXT_DAY(DD , DAYNAME); GG := TO_CHAR(EE,'MON'); IF GG <> THE_MONTH THEN BB := 7; ELSE BB := BB+1; CC := BB; DD := DD+7; END IF; END LOOP; RETURN CC;END ;/SELECT NUM ('MONDAY', TO_DATE('05-11-2005','DD-MM-YYYY')) FROM DUAL;--SQL> 5 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.