假設我有個 table 有 3 個 field ([Name] nvarchar, [Last Update Date] DateTime, [ID] Auto), 咁如果我淨係想留最新 record, 其他 delete, 一條 sql statement 可以點做呢 ?
Example:
Chan 2008/10/16 0:00:00 1
Chan 2008/10/15 0:00:00 2
Chan 2008/10/01 0:00:00 3
Lee 2008/10/01 0:00:00 4
Lee 2008/10/07 0:00:00 5
Lam 2008/09/06 0:00:00 6
Lam 2008/06/01 0:00:00 7
要變成
Chan 2008-10-16 00:00:00.000
Lam 2008-09-06 00:00:00.000
Lee 2008-10-07 00:00:00.000
其他 delete ?
這樣有甚麼問題 
Delete [TestTable].* From [TestTable] Left Join
(Select [Name] As [Name1], Max([Last Update Date]) As [MaxDate]
From [TestTable] Group By [Name])
On [TestTable].[Name] = [Name1] And [TestTable].[Last Update Date] = [MaxDate]
Where [MaxDate] Is Null;
Thanks  |