Ich habe eine Datenbank, die zahlreiche Mengen von Duplikaten enthält, jeder hat eine eindeutige ID
, aber ihre PermitID
und EncID
sind gleich. Ich muss alle außer der höchsten ID in der Datenbank entfernen.Lösche mehrere Duplikate mit maximaler ID in sql
Die SQL-Anweisung,
DELETE FROM tblInvoices
WHERE EncID = '0237' AND PermitID IN (
SELECT Max(ID) FROM tblInvoices Group BY PermitID)
löscht alle Datensätze. Ich habe versucht,
DELETE FROM tblInvoices
WHERE EncID = '0237' AND PermitID
< (SELECT Max(ID) FROM tblInvoices Group BY PermitID)
aber ich erhalte den Fehler Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Ein Beispiel für die Daten
ID PermitID EncID
1 11 22
2 11 22
3 11 22
4 12 23
5 12 23
I 3 wäre halten wollen, entfernen Sie 2 und 1. Ich würde auch mag 5 behalten und entfernen 4