2017-10-28 68 views
0
Student Name Subject Name  Marks 
Sam    Maths    100 
Tom    Maths     80 
Sam    Physical Science  80 
John   Maths     75 
Sam    Life Science   70 
John   Life Science   100 
John   Physical Science  85 
Tom    Life Science   100 
Tom    Physical Science  85 

我們要加載我們的目標表爲:如何以下源轉換爲低於目標

Student Name Maths Life Science Physical Science 
Sam    100  70    80 
John    75  100    85 
Tom    80  100    85 
+1

Google:「oracle pivot」 –

+0

同一個學生對於同一個主題可以有兩個或三個或更多的標記嗎? (如果他們認爲他們可以做得更好 - 或者他們第一次失敗,他們能夠重新參加考試或全班考試嗎?)如果是這樣,您是否需要最高分,最新分數或平均分,還是還有什麼?另外:如果你在這裏展示的是你已經完成的預處理的結果(也許是爲了處理這些情況!),那麼你應該「同時」(或者不是)你已經做了什麼;不要做預處理,只做旋轉,因爲兩者都可以一次完成。 – mathguy

回答

0

嘗試。

SELECT student_name, 
     "Maths", 
     "Life Science", 
     "Physical Science" 
FROM 
    (SELECT s.* 
    FROM Student s) 
PIVOT (MAX(Marks) 
      FOR subject_name IN 
('Maths' AS "Maths",'Life Science' AS "Life Science",'Physical Science' AS "Physical Science")) 
ORDER BY 3; 
+0

ORA-00933:SQL命令未正確結束 – user8848309

+0

謝謝Kaushik Nayak,但得到了低於erreo – user8848309

相關問題