mageed_ahmed بتاريخ: 30 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 30 أكتوبر 2007 (معدل) السلام عليكم ورحمة الله وبركاتهبرجاء التكرم بقراءة المعطيات التالية والمساعدة في اعطاء الناتج من خلال sql statement or pl codeSQL> select emp_code,to_char(dated,'dd/mm/yyyy') dated,inout from ATD 2 order by emp_code,dated,INOUT;EMP_ DATED INOUT---- ---------- --------0085 20/10/2007 08:09:27 0085 20/10/2007 12:58:30 0085 20/10/2007 14:08:32 0085 20/10/2007 18:00:040085 21/10/2007 08:10:020085 21/10/2007 12:56:530085 21/10/2007 14:07:380085 21/10/2007 18:44:440085 22/10/2007 08:12:340085 22/10/2007 13:11:570085 22/10/2007 14:08:330085 22/10/2007 18:11:580086 23/10/2007 08:12:000086 23/10/2007 13:00:050086 23/10/2007 14:05:480086 23/10/2007 18:04:420086 24/10/2007 08:13:350086 24/10/2007 13:06:170086 24/10/2007 14:11:0620 rows selected.the required is to make a select statement which results the followingEMP_code DATED INOUT1 INOUT2 INOUT3 INOUT4 0085 20/10/2007 08:09:27 12:58:30 14:08:32 18:00:040085 21/10/2007 08:10:02 12:56:53 14:07:38 18:44:44AND SO ON TO SHOW DAY ONE TIME WITH THE 4 TIMES FOR EVERY EMPLOYEEYOU are allowd to give any solution to get the resultFOR MORE INFORMATIONCREATE TABLE ATD(EMP_CODE VARCHAR2(4),DATED DATE,INOUT DATE);THEN INSERT THESE VALUES INSIDE THIS TABLE LIKEINSERT INTO ATD VALUES ('0085' ,TO_DATE('20/10/2007','DD/MM/YYYY'),TO_DATE('08:09:27','HH24:MI:SS'));INSERT INTO ATD VALUES ('0085' ,TO_DATE('20/10/2007','DD/MM/YYYY'),TO_DATE('12:58:30','HH24:MI:SS'));INSERT INTO ATD VALUES ('0085' ,TO_DATE('20/10/2007','DD/MM/YYYY'),TO_DATE('14:08:32','HH24:MI:SS'));INSERT INTO ATD VALUES ('0085' ,TO_DATE('20/10/2007','DD/MM/YYYY'),TO_DATE('18:00:04','HH24:MI:SS'));AND SO ON FOR INSERTING THE ABOVE DATATHEN YOU CAN USE the following to display date and time as I listed beforeSQL> select emp_code,to_char(dated,'dd/mm/yyyy') dated,inout from ATD 2 order by emp_code,dated,INOUT;I hope you reply it.to get this data in text file please download the attached file to_araboracle.txt تم تعديل 30 أكتوبر 2007 بواسطة mageed_ahmed اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nhamzehn بتاريخ: 31 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 31 أكتوبر 2007 الحل كالتالي باستخدام NESTED CURSOR DECLARE INOUT_TEMP VARCHAR2(80) :=''; CURSOR C1 IS SELECT DISTINCT EMP_CODE, TO_CHAR(DATED, 'DD/MM/YYYY') DATED FROM ATD ORDER BY 1, 2; CURSOR C2(E_CODE IN VARCHAR2, DAT VARCHAR2) IS SELECT TO_CHAR(INOUT, 'HH24:MI:SS') INOUT FROM ATD WHERE EMP_CODE = E_CODE AND TO_CHAR(DATED,'DD/MM/YYYY') = DAT ORDER BY 1; BEGIN FOR I IN C1 LOOP FOR J IN C2(I.EMP_CODE , I.DATED) LOOP INOUT_TEMP := INOUT_TEMP||' '||J.INOUT; END LOOP; DBMS_OUTPUT.PUT_LINE(I.EMP_CODE||' '||I.DATED||INOUT_TEMP); INOUT_TEMP := ''; END LOOP; END; اتمنى ان يكون المطلوب وما توفيقي الا بالله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mageed_ahmed بتاريخ: 31 أكتوبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 31 أكتوبر 2007 جزاكم الله خيرا الجزاء وبارك فيك وجعله في ميزان حسانتكالفكرة واضح أنها صحيحة وشيقة جدا وعلي أي حال جاري التجربة بارك الله فيك وأصلح حالك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
جلال شواقفه بتاريخ: 31 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 31 أكتوبر 2007 شكرا على المعلومه المميزه ساقوم بحفظها في ملفالارشيف الخاص بيبارك الله بيكم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mageed_ahmed بتاريخ: 1 نوفمبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 1 نوفمبر 2007 أخي الفاضلبالنظر الي EMP_ DATED INOUT---- --------- --------0992 20-OCT-07 17:31:340992 20-OCT-07 08:06:380992 21-OCT-07 08:02:360992 21-OCT-07 17:29:550992 22-OCT-07 07:54:280992 22-OCT-07 17:30:410992 23-OCT-07 07:59:090992 23-OCT-07 17:30:35 حينما يصل الكود الي الصف الاخير 0992 24-OCT-07 07:58:29 للموظف 0992 فانه يعطي ORA-6502 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mageed_ahmed بتاريخ: 1 نوفمبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 1 نوفمبر 2007 بمعني اذا كان INOUT ظاهر مرة واحدة كأن كان حضور الموظف مرة واحدة في اليوم يعطي رسالة الخطأ يعني الكود الذي تفضلت به يحتاج INOUT مدخلين للموظف في يوم واحد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mageed_ahmed بتاريخ: 1 نوفمبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 1 نوفمبر 2007 جزاكم الله خيرا تم حل المشكلة والحمد لله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.