بتاريخ: 4 مارس 201313 سنة comment_233227 الإخوه الكرام لدي جدول يحوي30978صف مكرروالمطلوب عرض التقرير من غير وجود اي صف مكررمحاولتي الاولى لم تنجحوكانت تصميم اس كيو ال تكوي الصفوف المكرره وتستثني منها الصفوف جميعها بحيث يتبقى فقط الغير مكرر SQL statement[/left] [left]Minus[/left] [left]Coped SQL statement[/left] [left]and M.rowid < ANY ( SELECT B.rowid FROM TRANSACTIONS_MASTER B ,TRANSACTIONS_DETAILS C WHERE B.CMP_NUM=C.CMP_NUM AND B.SEQ_YEAR=C.SEQ_YEAR AND B.SEQ_NO=C.SEQ_NO AND M.DISPLAY_SERIAL_NUM = B.DISPLAY_SERIAL_NUM AND M.DOCUMENT_SUBJECT = B.DOCUMENT_SUBJECT AND D.RECEIVE_HDATE = C.RECEIVE_HDATE )[/left] [left] محاولتي الثانية لم تنجحوكانت إضافة الكود المرفق في Format Trigger propertyللربيتنج فرام الابنTO CHILD OR DETAILED REPEATING FRAME function R_2FormatTrigger return boolean isv_DISPLAY_SERIAL_NUM varchar2(200);count_DISPLAY_SERIAL_NUM number(1);begin count_DISPLAY_SERIAL_NUM:=0;select count(DISPLAY_SERIAL_NUM)into count_DISPLAY_SERIAL_NUMfrom TRANSACTIONS_MASTER awherea.rowid <ANY ( SELECT B.rowid FROM TRANSACTIONS_MASTER B WHERE A.DISPLAY_SERIAL_NUM = B.DISPLAY_SERIAL_NUM AND A.DOCUMENT_SUBJECT = B.DOCUMENT_SUBJECT AND A.DISPLAY_SERIAL_NUM =:DISPLAY_SERIAL_NUM ); --GROUP BY A.DISPLAY_SERIAL_NUM ,A.DOCUMENT_SUBJECT;if count_DISPLAY_SERIAL_NUM > 1 thenreturn (FALSE);ELSEreturn (TRUE);end if;/*v_DISPLAY_SERIAL_NUM := 0 ;select DISPLAY_SERIAL_NUMinto v_DISPLAY_SERIAL_NUMfrom TRANSACTIONS_MASTERwhere DISPLAY_SERIAL_NUM = :DISPLAY_SERIAL_NUM;*/end;[/left] [left] مع العلم أن كلا الطريقتين تستهلك وقت كبير اثناء FETCHINGبرجاء في حالة وجود حل توضيحه وشكرا تم تعديل 4 مارس 201313 سنة بواسطة omogun تقديم بلاغ
بتاريخ: 4 مارس 201313 سنة comment_233232 السلام عليكمممكن ارفاق عينة من البيانات المكرره وهل استخدام Distinct يحل المشكلة ؟؟ تقديم بلاغ
بتاريخ: 4 مارس 201313 سنة comment_233233 استخدم هذه الصيغة المباشرة SELECT * FROM your_table a WHERE ROWID = (SELECT MIN (ROWID) FROM your_table b WHERE b.primary_key1 = a.primary_key1 AND b.primary_key2 = a.primary_key2); او هذه الصيغة SELECT * FROM your_table WHERE ROWID IN (SELECT ROWID FROM (SELECT ROWID, ROW_NUMBER () OVER (PARTITION BY primary_key ORDER BY primary_key) dup FROM your_table) WHERE dup = 1); تم تعديل 4 مارس 201313 سنة بواسطة أحمد جادو تقديم بلاغ
بتاريخ: 4 مارس 201313 سنة كاتب الموضوع comment_233254 شاكر ومقدر جدا لمجهودكم وتفاعلكم راجعت الداتا بيز ديزاين وإعتمدت على بعض الحلول الأقل في وقت FETCHING وأضفت أكثر شروط فيWHERE CONDITION والحمد لله مشي الموضوعأكرر لكم شكري وتقديري تقديم بلاغ
بتاريخ: 13 مارس 201313 سنة comment_233636 try this code it will bring only one time Select A1.*, A1.rowidfrom Table_Name A1where exists (Select 'x' from Table_Name A2where A1.Column_Name = A2.Column_Nameand A1.ROWID <> A2.ROWID)and not exists (select 1 from Table_Name where Column_Name=a1.Column_Name and rowid<a1.rowid); تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.