2012-01-05 82 views
0

我有有三列學生考試一GradeConversionCriteria表:學生成績轉換使用用戶定義的函數

FromNumber 
ToNumber 
Grade 

我想創建一個用戶定義函數將返回年級的時候我輸入marksobtained和totalmarks

如果學生在50分中得到45分,我想返回他取得的成績(A,B,C等)。

+1

後你都試過了。 – 2012-01-05 17:05:18

回答

1

你想是這樣的查詢您的功能:

create function ConvertGrades (
    @marksobtained int, 
    @totalmarks int 
) returns char(1) as 
select 
    grade 
from 
    gradeconversioncriteria 
where 
    @marksobtained/@totalmarks between fromnumber and tonumber 

然後你只想做這樣的事情來獲得等級:

select 
    s.student_id, 
    s.student_name, 
    t.marksobtained, 
    t.totalmarks, 
    dbo.ConvertGrades(t.marksobtained, t.totalmarks) as grade_letter 
from 
    tests t 
    inner join students s on 
     t.student_id = s.student_id