delphi4arab منتديات دلفي للعرب
حذف السجلات المتكررة - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : حذف السجلات المتكررة (/showthread.php?tid=3071)



حذف السجلات المتكررة - لؤي - 11-05-2011

سلام الله عليكم

أحاول مسح السجلات المتكررة وضعت هذا الكود في ADOquery ولكن لم يشتغل

PHP كود :
with adoquery1 do
 
begin
   Close
;
  
SQL.Clear;
    
SQL.Add('DELETE FROM BROADCAST.STATISTICS WHERE ROWID IN ');
     
SQL.Add('(SELECT ROWID FROM ( SELECT ROWID, ROW_NUMBER ( ) ');
    
SQL.Add('FROM ( SELECT ROWID, ROW_NUMBER ( ) OVER ( PARTITION BY COLONNE1 || COLONNE2 || COLONNE3 || COLONNE4 || COLONNE5 ORDER BY COLONNE1 || COLONNE2 || COLONNE3 || COLONNE4 || COLONNE5) num_ligne FROM BROADCAST.STATISTICS ) t2 WHERE  num_ligne > 1)');
   
ExecSQL;
   
end; 

مع العلم أن الكود صحيح عند تنفيذة في anager oracle


حذف السجلات المتكررة - لؤي - 11-05-2011

توصلت إلى الحل

PHP كود :
with adoquery1 do
 
begin
   Close
;
   
SQL.Clear;
   
SQL.Add('DELETE FROM BROADCAST.STATISTICS');
   
sQL.Add('WHERE ROWID IN (SELECT ROWID FROM (SELECT ROW_NUMBER() OVER (PARTITION BY COLONNE1,COLONNE2,COLONNE3,COLONNE4,COLONNE5 ORDER BY COLONNE1,COLONNE2,COLONNE3,COLONNE4,COLONNE5 ) rnk ');
   
SQL.Add(' FROM  BROADCAST.STATISTICS)');
   
SQL.Add('WHERE rnk>1)');
   
ExecSQL;
   
end; 

شكرا لكم


حذف السجلات المتكررة - kachwahed - 11-05-2011

وعليكم السلام
طريقة أخرى:
http://www.delphi4arab.net/forum/showthread.php?tid=1790



حذف السجلات المتكررة - لؤي - 12-05-2011

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


حذف السجلات المتكررة - MEDBENSAFI - 14-02-2012

لديا قاعدة بيانات و أحذف المتكررات بهذه الطريقة ,الجدول يسمى ASSURE01
delete from assure01 t where t.nass in (select distinct nass from assure01 group by nass
having count(*) > 1