我在SQL Server中有一个类似于这样的表:
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
Run Code Online (Sandbox Code Playgroud)
试图为每个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
Run Code Online (Sandbox Code Playgroud)
但不确定这是不是