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

مساعدة في حل مشكلة Overlap

Featured Replies

بتاريخ:

السلام عليكم .
أيها الاخوة احتاج لمساعدتكم في حل مشكلة overlapping
لنفترض ان لدينا الاعمدة التالية :
LABORID رقم العامل الوظيفي
WROKID رقم عملية الاصلاح التي سيقوم بها
STARTTIME وقت البدء بعملية الاصلاح ( وقت وتاريخ)
ENDTIME وقت الانتهاء من عملية الاصلاح ( وقت وتاريخ )

الآن انا بحاجة للمساعدة بالتأكد من انه لا يوجد تداخل overlapping لدى العامل ، أي بعبارة أخرى لا يمكن عمليا ان يقوم بعمليتي اصلاح مثلا بنفس الوقت وطبعا يوجد لدي جدول به جميع التفاصيل المذكور سابقا واحتاج لأن اقارن واتأكد ان كل عامل لدي قد قام بعمل واحد فقط خلال وقت واحد اي انه وقت انتهاء عملية الاصلاح رقم واحد مثلا هو قبل تاريخ بداية عملية الاصلاح رقم اثنين لنفس العامل .

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




فهل من مجيب ؟؟؟؟؟


وجزاكم الله خيرا

بتاريخ:

السلام عليكم
مبدئيا الدالة count هي هتحل لك المشكلة بمعنى انت بمعرفة رقم العامل هتعمل count له هل معه الان عملية اصلاح الان أم لا من خلال النتيجة لو = 1 سيتم معرفة ان معه عملية اصلاح
وبالنسبة للتواريخ والوقت هتقارن بينهم بجملة if
أعتقد لو هتستخدم الفورم هيكون الاجابة أوضح وأسهل
أم أنت تريد تريجر على مستوى الداتا بيز للقيام بهذه المهمة

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

السلام عليكم .
شكرا لك اخي مصطفى على الرد ، انا احتاج لمقارنة جميع مهام لدى العامل الواحد للتأكد من انه لم يستلم المهمة الجديدة قبل انتهائه من المهمة السابقة لها ، واحتاج لعمل ذلك على جدول يحتوى حوالي 11000 مهمة تقريبا ، ولا استطيع عمله كفورم ولكن اظن انه كتريجر سيكون هو الحل .
هل من الممكن ان تشرح الفكرة اكثر اخي الكريم ؟؟؟

المشكلة اني لست متقدما بمجال pl/sql بالدرجة الكافية

بتاريخ:

[يسار][/يسار]
select time,id
into v_time,v_id
from (select max(end_time) time ,work_id id
into dummy_time
from table-name
group by work_id)
where laborid=رقم العامل
if :time <dummy_time then
show_alert('alert_name','يوجد هناك عمل فى ساعة'||v_time ||'للموضف'||v_id||'مع'||:item name of emp||:time from canvas) ;
raise from_trigger_failure;
end if;
على كل حال هيدا هوا أبسط الحلول و إزا كان فى هنيك أي مشكل أنا جاهز للمساعدة و للسرعة بالرد ممكن المراسله على الإيميل التالي
[email protected]

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

السلام عليكم .
لقد قمت بحل المشكلة عن طريق SELFJOIN بالكود التالي


SELECT A.LABORCODE AS LABORCODE, A.WORKID AS WORK_1, A.STARTDATE||' : '||TO_CHAR(A.STARTTIME,'HH24.MI')   AS START_TIME_1, A.FINISHDATE||' : '||TO_CHAR(A.FINISHTIME,'HH24.MI')   AS FINISH_TIME_1, B.WORKID AS WORK_2, B.STARTDATE||' : '||TO_CHAR(B.STARTTIME,'HH24.MI')   AS START_TIME_2,B.FINISHDATE||' : '||TO_CHAR(B.FINISHTIME,'HH24.MI')   AS FINISH_TIME_2
FROM LABTRANS A ,LABTRANS B
WHERE A.LABORCODE = B.LABORCODE AND A.FINISHDATE = B.STARTDATE AND A.STARTTIME < B.FINISHTIME AND A.FINISHTIME > B.STARTTIME AND A.WORKID<> B.WORKID AND A.LABORCODE = &LABORID;



حيث سيقوم بربط الجدول بنفسه ومقارنة القيم واظهار النتائج .

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

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

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

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

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

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.