Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 删除除一条记录外的所有重复条目_Sql - Fatal编程技术网

Sql 删除除一条记录外的所有重复条目

Sql 删除除一条记录外的所有重复条目,sql,Sql,我正在使用SQL Server 2005,希望删除具有最早日期的重复记录。例如,我有一个培训数据库,可以捕获员工编号、班级名称和日期。有些人上过不止一次课,但我们只需要保存最近一次上课的记录。我会用在: 用SELECT*替换DELETE,查看要删除的内容。我不明白答案。我的表名是SETD_SimpleScan。列包括ID(主键)、扫描、培训日期和培训类型。查询与此信息的关系如何?每次扫描时,我想删除包含每个培训类型的较早培训日期的记录。查询会进行分析,但当我运行它时,SQL Server Man

我正在使用SQL Server 2005,希望删除具有最早日期的重复记录。例如,我有一个培训数据库,可以捕获员工编号、班级名称和日期。有些人上过不止一次课,但我们只需要保存最近一次上课的记录。

我会用在:


SELECT*
替换
DELETE
,查看要删除的内容。

我不明白答案。我的表名是SETD_SimpleScan。列包括ID(主键)、扫描、培训日期和培训类型。查询与此信息的关系如何?每次扫描时,我想删除包含每个培训类型的较早培训日期的记录。查询会进行分析,但当我运行它时,SQL Server Management Studio会关闭。@PeggyHall:它在SQL Server 2005中正常工作(我也在使用它)。但是如果在SSMS中使用编辑器,它会崩溃。至少我有这个问题,我很久以前就在这里了。只需在普通的查询窗口中设计并运行它。忽略我的上一篇文章。所有的复制品现在都不见了!太酷了!!!不知道它为什么起作用,但非常感谢它起了作用!
WITH CTE AS
(
    SELECT  ID, Scan, TrainingDate, TrainingType, 
        rn = ROW_NUMBER() Over (Partition By Scan, TrainingType 
                                Order By TrainingDate DESC)
    FROM dbo.SETD_SimpleScan
)
DELETE FROM CTE WHERE rn > 1