使用sql查找/标记重复值

3hvapo4f  于 2021-08-09  发布在  Java
关注(0)|答案(0)|浏览(179)

我正在尝试更新表中的一列,以指定该记录是否重复。为此,我添加了一个名为“duplicaterecord”的字段。
我无法在access中使用查询向导,因为此中的“复制”选项只允许将10个字段作为重复项进行检查,并且我的表中有10个以上的字段。
以下代码适用于我:

Call Module1.RunSQL("UPDATE myTable " & _
"SET myTable.DuplicateRecord = TRUE " & _
"WHERE myTable.[CompanyID] IN (" & _
"SELECT * FROM " & _
"(SELECT myTable.[CompanyID] " & _
"FROM myTable " & _
"GROUP BY myTable.[CompanyID] " & _
"HAVING COUNT(*) > 1 ) T1 ) ")

但是,这段代码只运行一个字段,我需要它运行表中的所有字段(大约有15个字段)。
作为一个测试,我尝试使用两个字段来查看是否可以使用以下命令来实现此功能:

Call Module1.RunSQL("UPDATE myTable " & _
"SET myTable.DuplicateRecord = TRUE " & _
"WHERE myTable.[CompanyID] AND myTable.[Product] IN (" & _
"SELECT * FROM " & _
"(SELECT myTable.[CompanyID], myTable.[Product], COUNT(*) " & _
"FROM myTable " & _
"GROUP BY myTable.[CompanyID], myTable.[Product] " & _
"HAVING COUNT(*) > 1 ) T1 ) ")

但是,我收到一条错误消息:“运行时错误'3306',您编写了一个子查询,它可以返回多个字段,而不必在主查询的from子句中使用exists保留字。修改子查询的select语句以仅请求一个字段。“
我试过用谷歌搜索这个错误,但我似乎不能解决它,因为我不完全理解它。
有人知道我如何应用重复测试的逻辑吗?有没有一个更简单的方法来做到这一点,然后我目前正在努力?我将需要这样做的完整记录(15个领域),所以我有点意识到,我目前正在尝试的方式,这可能不是最好的适合。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题