【发布时间】:2014-04-18 11:25:56
【问题描述】:
我正在使用 SQL 2008 尝试删除一些特殊情况的重复项,但我无法弄清楚或找到解决方案。
我有一个表 (CUST_REF),它的 CUST_ID 列是表 (CUST_MAST) 的外键。 CUST_REF 是我关心的重复表。 CUST_REF 中有重复的记录,如下例所示,ID 1 & 2 和 3 & 4(不包括 ID 列)。虽然 ID 3 和 4 在该表中是重复的,但如果我们在 CUST_MAST 中查找它们的 CUST_ID,我们会看到它们引用了不同的 CUST_NO 值,因此这些重复记录很好,我不想删除它们中的任何一个。
CUST_REF
ID CUST_ID DEPT DIV ATT_NAME ATT_VALUE
1 11 01 01 PASS 12345
2 12 01 01 PASS 12345
3 15 02 21 PASS 98765
4 16 02 21 PASS 98765
5 23 10 11 PASS 98765
CUST_MAST
CUST_ID CUST_NO
11 310
12 310
15 242
16 911
23 750
我正在使用Group By DEPT, DIV, ATT_NAME Having Count > 1 在 CUST_REF 中查找重复项,但我不知道如何使用另一个表中的 CUST_NO 过滤重复项。非常感谢任何帮助。
【问题讨论】:
-
关于您的样本数据的问题。在 CUST_MAST 中,CUST_!D 17 实际上应该是 16 吗?此外,您使用的 RDBMS 可能会影响解决方案。
-
是的,我更改了该 ID。我正在使用 MSSQL 2008。
标签: sql duplicate-removal