2012-08-13 126 views
-4

如何将学生获得的标记转换为x% 即有两个考试。从两个考试计算某些%标记(例如x%和Y%),使总的将是100%将标记转换为百分比

+3

请显示样本数据和预期结果。我们无法知道您的考试是否存储在垂直,水平,其他列是什么等。 – 2012-08-13 14:01:46

+0

你到目前为止尝试过什么?显示你的努力,然后编写你的查询导致错误。 – 2012-08-13 14:02:22

+2

为什么在此标记SQL?从数据库中读取数据有困难吗?或者你是否试图计算SQL语句中的值? – 2012-08-13 14:02:29

回答

1

根据您所提供的有限信息,我想你可能会问以下:

create table student 
(
    id int, 
    s_name varchar(10) 
) 
insert into student values (1, 'Jim') 
insert into student values (2, 'Bob') 
insert into student values (3, 'Jane') 

create table exams 
(
    id int, 
    e_name varchar(10) 
) 
insert into exams values (1, 'Test 1') 
insert into exams values (2, 'Test 2') 
insert into exams values (3, 'Test 3') 
insert into exams values (4, 'Test 4') 

create table exam_student 
(
    e_id int, 
    s_id int, 
    dt datetime, 
    score decimal(5,2) 
) 
insert into exam_student values(1, 1, '2012-08-01', 65.0) 
insert into exam_student values(1, 2, '2012-08-01', 85.0) 
insert into exam_student values(2, 1, '2012-08-02', 75.0) 
insert into exam_student values(2, 2, '2012-08-02', 42.0) 


select avg(es.score) as ScorePct, s_id, s.s_name 
from exam_student es 
inner join exams e 
    on es.e_id = e.id 
inner join student s 
    on es.s_id = s.id 
group by s_id, s_name 

结果:

enter image description here

如果你提供什么,你正在寻找这将是在回答你的问题有帮助的更多细节。