我需要找出学生被重新录取时的年龄。现在为了做到这一点,我有一个表student_history,因此首先需要从学生历史中检索" admin_date“录取日期,当学生状态等于'RE-ADMIN‘被录取。然后检查admin_date是否大于最后一次重新录取’RE-ADMIN‘的admin_date或在记录中完成的'COMP’。现在查询不能正常工作,并且遇到了不同的错误。
SELECT
s.admin_date
FROM
student_history s
WHERE
student_st = 'RE-ADMIN'
AND
s.admin_date > (
SELECT
s.admin_date
FROM
s
WHERE
student_st IN('RE-ADMIN','COMP')
)研究了几个类似的链接。
发布于 2014-04-29 11:09:51
将WHERE子查询更改为:
SELECT
MAX(s.admin_date)
FROM
student_history
WHERE
student_id = @studentId
AND
student_st IN ( 'RE-ADMIN', 'COMP' )您还需要将student_id = @studentId谓词添加到外部查询中。
发布于 2014-04-29 11:21:15
戴是对的,你必须加上学生号才能省略这个错误。但是通过这个,你将获得最后的重新录取日期。你将如何计算他的年龄和入学日期?要做到这一点,你需要道布字段。
https://stackoverflow.com/questions/23354416
复制相似问题