我在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)。其*鏈接*部分有許多其他人。 –