2015-01-08 28 views
-2

這裏是我的專欄我想生成包含百分比marksheet,等級標準明智和部門在Oracle數據庫明智

create table exam_details(
     Stud_id varchar2(50), 
     Stud_course_id Number, 
     Stud_div char, 
     Stud_Sub_id Number, 
     Stud_Marks Number, 
     Sub_total_Marks Number, 
     Exam_id Number, 
     Exam_date Date 
     ); 

和內容DB是

 insert into exam_details values ('1A1',1,'A',1,55,100,1,'2-jan-2015'); 
     insert into exam_details values ('1A1',1,'A',2,65,100,1,'3-jan-2015'); 
     insert into exam_details values ('1A1',1,'A',3,72,100,1,'5-jan-2015'); 


     insert into exam_details values ('1B1',1,'B',1,45,100,1,'2-jan-2015'); 
      insert into exam_details values ('1B1',1,'B',2,65,100,1,'3-jan-2015'); 
      insert into exam_details values ('1B1',1,'B',3,58,100,1,'5-jan-2015'); 

     insert into exam_details values ('2A1',2,'A',1,75,100,1,'2-jan-2015'); 
      insert into exam_details values ('2A1',2,'A',2,65,100,1,'3-jan-2015'); 
     insert into exam_details values ('2A1',2,'A',3,82,100,1,'5-jan-2015'); 

我都試過,但我得到導致只爲

select stud_id, 
    RANK() OVER(ORDER BY stud_marks DESC) AS "Rank" 
from exam_details; 
+0

''2-jan-2015''不是'date',它是一個'string'文字。使用'to_date'將其轉換爲'date',否則你的'insert'語句是沒有用的。 –

+0

謝謝,但我只專注於分明英明markwise和明智百分比標記,我試着對oracle 10g –

+0

如果你不編輯你的插入語句,沒有人能夠使用你的測試用例。 –

回答

1

也許這一個:

select stud_id, Stud_div, 
    RANK() OVER(ORDER BY stud_marks DESC) AS Rank_all, 
    RANK() OVER(PARTITION BY Stud_div ORDER BY stud_marks DESC) AS Rank_div 
from exam_details; 
+0

我想生成簡單的報告,包含學生的排名和百分比 –