我在SQL Server中类似这样的表:SQL服务器重复记录删除最早的记录,并保持最新
Emp# CourseID DateComplete Status
1 Course1 21/05/2012 Failed
1 Course1 22/05/2012 Passed
2 Course2 22/05/2012 Passed
3 Course3 22/05/2012 Passed
4 Course1 31/01/2012 Failed
4 Course1 28/02/2012 Passed
4 Course2 28/02/2012 Passed
试图捕捉最新记录每门课每个EMP#。如果同一天课程已经尝试在同一天捕获“通过”课程记录。
思考这些方针的东西:
SELECT DISTINCT .....
INTO Dup_Table
FROM MainTable
GROUP BY ........
HAVING COUNT(*) > 1
DELETE MainTable
WHERE Emp# IN (SELECT Emp# FROM Dup_Table)
INSERT MainTable SELECT * FROM Dup_Table
Drop Table Dup_Table
GO
但不知道这是
- 的最佳方法和
- 如何将所有携带的Emp#/ courseID/DateComplete /状态一起。
什么版本的SQL Server您使用的最后一个记录? –
单独针对SQL Server多次提出此问题及其变体。你可以从这个问题开始:[SQL - 如何删除重复的行?](http://stackoverflow.com/questions/18932/sql-how-can-i-remove-duplicate-rows)。其*链接*部分有许多其他人。 –