많은 양의 중복이 포함 된 데이터베이스가 있습니다. 각각 고유 한 ID
이 있지만 PermitID
과 EncID
은 동일합니다. 데이터베이스에서 가장 높은 ID를 제외한 모든 ID를 제거해야합니다. SQL에서 최대 ID를 남기는 여러 중복 삭제
는 SQL 문
,DELETE FROM tblInvoices
WHERE EncID = '0237' AND PermitID IN (
SELECT Max(ID) FROM tblInvoices Group BY PermitID)
은 모든 레코드를 삭제합니다. 나는
DELETE FROM tblInvoices
WHERE EncID = '0237' AND PermitID
< (SELECT Max(ID) FROM tblInvoices Group BY PermitID)
을 시도했지만 나는 데이터의 예는,
ID PermitID EncID
1 11 22
2 11 22
3 11 22
4 12 23
5 12 23
내가 3을 유지하려는 것입니다 수 2를 제거하고 1. 나는 또한 것 것 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
오류가 나타납니다 5를 유지하고 4를 제거하고 싶습니다.