小编use*_*577的帖子

SQL Server Duplicate Records删除最旧的记录并保持最新状态

我在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)

但不确定这是不是

  1. 最好的方法和
  2. 如何将Emp#/ courseID/DateComplete/Status整合在一起.

sql sql-server date duplicate-removal

0
推荐指数
1
解决办法
6610
查看次数

标签 统计

date ×1

duplicate-removal ×1

sql ×1

sql-server ×1