MS-sql从最老的学生

时间:2018-05-22 12:25:18

标签: sql sql-server

enter image description here

enter image description here

enter image description here

我对SQL很新。我试图从我的数据库中检索一些数据。我使用的SQL数据库是MS sql,服务器有三个表可用:

生 等级 Grade_types

我正在尝试从最早的ENROLL_DATE获得100名学生的成绩数据,ENROLL_DATE在学生表中。

这是我尝试的声明,但它不起作用:

 Select top (100) * from students order by ENROLL_DATE ASC inner join grades on students.PERSON_ID = grades.PERSON_ID order by ENROLL_DATE

2 个答案:

答案 0 :(得分:0)

你非常接近。只能有一个ORDER BY,它必须在最后:

Select top 100 *
from students inner join grades on students.PERSON_ID = grades.PERSON_ID
order by ENROLL_DATE

答案 1 :(得分:0)

假设学生可以有多个年级,那么你想首先选择100名学生,然后为他们检索所有成绩:

Select *
from (select top (100) s.*
      from students s
      order by ENROLL_DATE ASC
     ) s inner join
     grades g
     on s.PERSON_ID = g.PERSON_ID
order by ENROLL_DATE;

请注意,如果年龄较大的学生没有成绩,您可能需要left join