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

عمليه التجميع بالتقرير


meem

Recommended Posts

السلام عليكم ورحمه الله وبركاته
اخواني لدي تقرير معمول على 6i ويوجد فيه بيانات البصمه
عندي في التقرير فيلد يسجل فيه قيمتين الحظور والانصراق ( 07:00:00 15:00:00 ) وتسجل في الداتابيس في عمود واحد .
الان اريد ان اقوم بعمليه الجمع حسب المرفق

ياليت احصل احل
دمتم ....

Microsoft Office Word Document جديد.rar

رابط هذا التعليق
شارك

You can take advantage from this function

create or replace function calc_time(f_time varchar2,s_time varchar2) return char is

v_calc varchar2(22);

begin

if to_date(f_time,'hh24:mi:ss')>to_date(s_time,'hh24:mi:ss') then

raise_application_error(-20000,'first time must be less than second time');

end if;

if to_char(to_date(f_time,'hh24:mi:ss'),'mi')=to_char(to_date(s_time,'hh24:mi:ss'),'mi') then

select abs((to_date(f_time,'hh24:mi:ss')- to_date(s_time,'hh24:mi:ss')))*24 into v_calc from dual;

else

select substr(abs((to_date(f_time,'hh24:mi:ss')- to_date(s_time,'hh24:mi:ss')))*24,1,instr(abs((to_date(f_time,'hh24:mi:ss')- to_date(s_time,'hh24:mi:ss')))*24,'.')-1)||':'||round(substr(abs((to_date(f_time,'hh24:mi:ss')- to_date(s_time,'hh24:mi:ss')))*24,instr(abs((to_date(f_time,'hh24:mi:ss')- to_date(s_time,'hh24:mi:ss')))*24,'.'))*60)

into v_calc from dual;

end if;

return v_calc;

end;


Regards
رابط هذا التعليق
شارك

السلام عليكم
الفانكشن مرة اخرى لانها كانت غير واضحة في المشاركة السابقة
لاحظ ان المدخلات عبارة عن char

واذا لم تعمل معك ارسل لي سكربت الجدول ووضح اكثر

موفق

function.txt

رابط هذا التعليق
شارك

صباح الخير اخ مصطفى
الله يجزاك خير على ماتقدمه
انا عملتها ولم تنجح يعطيني النتيجه : بدون قيم الفانكشن يا اخ مصطفى ابيه في التقارير واذا عملته يقولي غير مسموح.

هل تريد ان ارسل لك نسخه من التقرير ؟

تم تعديل بواسطة meem
رابط هذا التعليق
شارك

الله يخليك اخ مصطفى
هذا نسخة من التقرير تبعي علماً ان F_time و S_time في تقريري هي حقل واحد والمسمى RES والبرامتر هو رقم الموظف والتاريخ من __ الى

ct04_test.rar

رابط هذا التعليق
شارك

السلام عليكم
يمكنك استخدام الدالة substr طالما انك تخزن الوقت في عمو واحد على نفس هذه الصيغة 07:00:00 15:00:00

لاستخراج الوقت الاول والثاني يكون زي كده

select substr('07:00:00 15:00:00',1,8) ,substr('07:00:00 15:00:00',10,18) from dual

وللتعديل على الفانكشن السابق
كالتالي "في المرفقات"

اتمنى أن تحاول تتضبط مافيها حسب عمالك
موفق

function.txt

رابط هذا التعليق
شارك

اخ مصطفى عملتها ولمن انفذ يعطيني ان فيه اكثر من سجل وقمت بعمل اكسبيشن When too_many)rows ('') وفعلاً فيه اكثر من سجل علماً باني مححده بالكود
للمعلوميه التقرير حق شهر كامل

رابط هذا التعليق
شارك


اخ مصطفى عملتها ولمن انفذ يعطيني ان فيه اكثر من سجل وقمت بعمل اكسبيشن When too_many)rows ('') وفعلاً فيه اكثر من سجل علماً باني مححده بالكود
للمعلوميه التقرير حق شهر كامل


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

 WHERE PIN_CODE=:PIN_CODE AND P_DATE=_DATE   



موفق

رابط هذا التعليق
شارك

اعمل جملة كويري على التود وضع شروطك وشوف هيرجع كم row
الموضوع كله في شرط ال where وعلى حسب شغلك
موفق

رابط هذا التعليق
شارك


اعمل جملة كويري على التود وضع شروطك وشوف هيرجع كم row
الموضوع كله في شرط ال where وعلى حسب شغلك
موفق


عملت كويري وكانت النتيجه سجلين !
واريد ان احظر السجلين واوجد الفرق بينهم لان السجل الاول يسجل الدخول والثاني يسجل الخروج
هل من حل لها لانها والله شيبت راسي :)
رابط هذا التعليق
شارك

السلام عليكم
صباح الخير
انا عملت جمله الكويري وجاب لي سجلين لكن كيف اعمل الكويري بحيث احصل على السجلين في التقرير عشان اقدر احصل على النتيجه الي ابيها وهي وقت العمل الفعلي لكل يوم

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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