我错误地将重复文件加载到数据库表(IBM DB2 v9.7)中。我需要删除重复的记录而不删除有效的数据。删除重复数据而不删除数据加载多次
最初,我虽然HAVING count(*) > 1
作为我的问题的解决方案,但这不会工作。我们的供应商生产具有修改规格的零件,因此可以通过有效数据多次加载文件。
我知道一些事情:
- 日期范围为我重复记录:属性之间“2012年8月27日”和 “2012-08-30”
- 使用来验证数据
这是我的SQL代码来识别受骗者:
SELECT CAST(ENDDATE AS DATE) ENDDATE,CAST(LOADEDON AS DATE),SUBSTR(SITEID,1,20) SITEID,SUBSTR(LOCATIONNAME_1,1,20),SUBSTR(RID,1,15),COUNT(RID) FROM AUTOMATION WHERE CAST(ENDDATE AS DATE) BETWEEN '2012-08-27' AND '2012-09-02' GROUP BY CAST(ENDDATE AS DATE),CAST(LOADEDON AS DATE),SUBSTR(SITEID,1,20),SUBSTR(LOCATIONNAME_1,1,20),SUBSTR(RID,1,15) ORDER BY 5 ASC FOR FETCH ONLY WITH UR
ED IT:可用于指定重复的一组列可以是RID,LOADEDON和FILENAME(此处未显示)。
这是一个示例输出
08/29/2012 09/05/2012 JGS Memphis JGS Memphis 029369751671 518
09/01/2012 09/05/2012 Reynosa Reynosa 029054883474 521
08/29/2012 09/05/2012 JGS Memphis JGS Memphis 028881223425 522
我想删除时间表“2012年8月27日”的所有重复的记录“2012-08-30”,但不删除已加载n个记录次为合法原因。
注:表中没有主键(如Rowid
在MS SQLSERVER,例如)
难道你只是做一个回滚? – Kermit
今天早上发现错误。它发生在上周。我太迟了。 – Chris