2013-12-16 50 views
0

我嘗試使用最大標記檢索主題名稱時出現問題。我使用的是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。 我該怎麼辦?請告訴我如何! 非常感謝。

回答

0

首先,找到最大標記對象ID,然後使用該ID找到實驗數據:

SELECT * 
FROM [Subject] 
WHERE SubID = 
( -- Max Mark 
    SELECT TOP 1 
    SubID 
    FROM Marks 
    ORDER BY Mark DESC 
) 
2

下面是一個方法,只是用joinorder by

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