检索具有最大标记的主题名称

时间:2013-12-16 14:07:37

标签: sql sql-server-2008

尝试使用最大标记检索主题名称时遇到问题。我正在使用SQL Server 2008。

我有两张表如下:

主题表:

create table [Subject]
(
    SubID int identity(1,1) primary key,

    SubName nvarchar(30) not null,

    SubCredit tinyint not null constraint Default_value_Subect default(1) constraint Check_value_Subject check(SubCredit>=1),

    SubStatus bit constraint default_value_SubStatus default(1)
)

标记表:

create table Marks
(
    MarkID int identity(1,1) primary key,

    SubID int foreign key references [Subject](SubID),

    StudentID int foreign key references Students(StudentID),

    Mark float constraint Check_value_Mark check(Mark>=0 and Mark <=100) constraint Default_value_Mark Default(0),

    ExamTime tinyint constraint Default_value_Examtime default(1)
)

我使用此SQL语句检索具有最大标记的SubID:

select Marks.SubID, MAX(Marks.Mark) as diem 
from Marks 
group by Marks.SubID

但我想检索SubName值而不是SubID。 我能怎么做?请告诉我怎么样! 非常感谢。

1 个答案:

答案 0 :(得分:2)

这是一种仅使用joinorder by的方法:

select top 1 s.*
from subject s join
     mark m
     on s.subid = m.subid
order by m.mark desc;