Tsql 如果是别的,情况,或者别的什么

Tsql 如果是别的,情况,或者别的什么,tsql,Tsql,我的查询只需要显示已注册的学生。每个学生都有几个入学日期。如果其中一个报名日期是退学日期,则不应将其包括在结果中。我的列是,StudentNumber,注册日期,Action。如果他们退出,他们将有一个D在行动中。我不知道如何过滤掉辍学学生,因为每个学生都有多个日期。我应该使用If-Else或Case语句,或者where子句中的某些内容。如果有人能给我指出正确的方向。谢谢 如果对您的模式没有更好的了解,这是很难做到的,但类似的东西可能适合您: SELECT e1.* FROM Enrollmen

我的查询只需要显示已注册的学生。每个学生都有几个入学日期。如果其中一个报名日期是退学日期,则不应将其包括在结果中。我的列是,StudentNumber,注册日期,Action。如果他们退出,他们将有一个D在行动中。我不知道如何过滤掉辍学学生,因为每个学生都有多个日期。我应该使用If-Else或Case语句,或者where子句中的某些内容。如果有人能给我指出正确的方向。谢谢

如果对您的模式没有更好的了解,这是很难做到的,但类似的东西可能适合您:

SELECT e1.* FROM Enrollments e1
LEFT JOIN (
    SELECT StudentNumber FROM Enrollments
    WHERE Action = "D") dropped ON dropped.StudentNumber = e1.StudentNumber
WHERE dropped.StudentNumber IS NULL

到目前为止你尝试了什么?你能展示样本数据和期望的结果吗?你的模式是什么?如果每个学生都有几个注册日期,您是否有一个学生到注册操作的联接表?日期和操作一起放在一个表中。如果有退学日期,也不一定是最长日期或当前日期。与其试图在评论中描述事情,你能编辑你的问题让它更清楚吗?您尝试的任何SQL都将非常有用。