kev*_*ski 5 sql-server sql-server-2008 sql-delete
我有一个包含大量重复量的数据库,每有一个独特的ID,但它们的PermitID和EncID是相同的.我需要删除数据库中除最高ID之外的所有ID.
sql语句,
DELETE FROM tblInvoices
WHERE EncID = '0237' AND PermitID IN (
SELECT Max(ID) FROM tblInvoices Group BY PermitID)
Run Code Online (Sandbox Code Playgroud)
删除所有记录.我试过了
DELETE FROM tblInvoices
WHERE EncID = '0237' AND PermitID
< (SELECT Max(ID) FROM tblInvoices Group BY PermitID)
Run Code Online (Sandbox Code Playgroud)
但我收到错误
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
数据的一个例子是
ID PermitID EncID
1 11 22
2 11 22
3 11 22
4 12 23
5 12 23
Run Code Online (Sandbox Code Playgroud)
我想保留3,删除2和1.我还想保留5并删除4
把事情简单化.
DELETE FROM tblInvoices
WHERE ID NOT IN
(SELECT MAX(ID)
FROM tblInvoices
GROUP BY EncID, PermitID)
Run Code Online (Sandbox Code Playgroud)