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

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

صورة
- - - - -

سؤالين هامين لمن لديهم الخبره


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

#1 mohamed1975

mohamed1975

    عضو

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

تاريخ المشاركة 12 November 2005 - 03:12 PM

هل احد يستطيع المساعده فى عمل فانكشن لارجاع عدد ايام يوم معين فى شهر معين من سنه معينه
مثلا فى 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

----------------------------------------------------------------------------------------------

ارجو الرد لمن لديه الخبره
،،،،،شاكرين حسن تعاونكم،،،،،،،

تم التعديل بواسطة mohamed1975, 12 November 2005 - 03:47 PM.


#2 أسامة موسى

أسامة موسى

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

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 12 November 2005 - 03:33 PM

الاخ الكريم

بالنسبة للسؤال الاول فهو غير واضح

بالنسبة للشق الثاني فيمكنك عمل ذلك وذلك بعمل lov حيث تختار منها وظيفة الموظف يعني تعملة update لحالة الوظفيفة وهكذا
يعني عمل select بالشكل التالي

select mgr,mgr_desc from your_table
۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com

#3 mohamed1975

mohamed1975

    عضو

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

تاريخ المشاركة 13 November 2005 - 01:14 PM

مشكور يا اخى على المشاركه ولكن احب ان اوضح لك الفكره
بالنسبة للشق الثانى فأنه من المستحيل ان اذهب لكل موظف على حده واعمل له تحديث لكود المدير هذه عمليه مرهقه للغايه
الفكره هو اننى اريد طريقه او تريجر معين يعمل تحديث لكل السجلات فى آن واحد عند حدوث تغيير فى كود المدير مثل ما ذكرت سلفا
والمشاكل ستظهر فى التسلسل الهرمى
وعلاقات الجدول بنفسه
فلا يمكن ان يكون موظف مدير نفسه مثلا


بالنسبة للشق الاول من سؤالى
فهو واضح الفكره هى اريد عدد تكرار يوم معين اختاره
يعنى مثلا يوم الجمعه تكرر 4 مرات فى شهر نوفمبر سنة 2005
ونفس يوم الجمعه تكرر 5 مرات فى شهر ابريل 2005
اريد فانكشن يرجع لى عدد تكرار هذا اليوم فى اى شهر اختاره من اى سنه

وانا حاولت واليك الكود الذى ساعدنى به احد الاصدقاء
لكن يحدث به بعض الاختلافات


CREATE OR REPLACE FUNCTION NUM (DAYNAME IN VARCHAR2, THEDATE IN
DATE)
RETURN NUMBER

IS
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