【问题标题】:Eliminating unwanted rows in SQL Server 2008 R2消除 SQL Server 2008 R2 中不需要的行
【发布时间】:2015-03-02 11:05:50
【问题描述】:

我有一张员工培训记录表,其中显示了参加的课程(记录为“已完成”)和注册的课程。通常,员工会再次参加他们多年前“完成”的课程。因此存在两行 - 一行用于 Finished,另一行用于 Enrolled。

这些情况发生的地方 - 我只想显示“已注册”行。

数据结构如下:

如果有帮助 - Finished 课程的 Course_Start_Date 总是早于 Enrolled 开始日期。

关于如何在这些行出现时删除它们有什么想法吗?

【问题讨论】:

    标签: sql-server sql-server-2008-r2


    【解决方案1】:

    您可以使用NOT EXISTS 删除同一人当前注册同一课程的课程。

    SELECT  En, Last_Name, FirstName, Course, Course_start_Date, Enrollment_Status
    FROM    T
    WHERE   Enrollment_Status = 'Enrolled'
    OR      NOT EXISTS 
            (   SELECT  1 
                FROM    T AS T2 
                WHERE   T2.En = T.En
                AND     T2.Course = T.Course
                AND     T2.Enrollment_Status = 'Enrolled'
            );
    

    【讨论】:

    • 天啊——太完美了。非常感谢。也感谢这么快的回复。
    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多