2011-11-18 42 views
0

我有一張包含學生成績(SAG)的表格。我需要根據IDResultGroup從一行中顯示不是NULL''的所有等級,並且基於同一表中的IDResultGroup從另一行開始顯示所有其他等級。根據同一表中的條件將結果合併爲多行的一行

TABLE - SAG 

ID  RESULTGROUP  GRADE 
----------------------------- 
102 AC    C 
102 ACPJ   B 
124 AC    A 
124 ACPJ    
242 AC    B 
242 ACPJ    
101 AC    D 
101 ACPJ   C 

我正在試圖找出是如何從ResultGroup ACPJ得到的結果,只有那些從ResultGroup AC如果在等級爲ID一個NULL''

END RESULT?喜歡的東西...

SAG_COMBINED 

ID  FinalGrade 
----------------- 
102 B 
124 A 
242 B 
101 C 

回答

0
SELECT acpj.ID 
    , CASE 
     WHEN acpj.Grade IS NULL OR acpj.Grade = '' THEN ac.Grade 
     ELSE acpj.Grade 
    END AS FinalGrade 
FROM SAG AS acpj 
INNER JOIN SAG AS ac ON acpj.ID = ac.ID 
WHERE acpj.ResultGroup = 'ACPJ' 
    AND ac.ResultGroup = 'AC' 
+0

雖然這是更緊湊,'JOIN'只有當沒有爲每個'RESULTGROUP'一排每一個作品'ID'參與,尚未在指定的題。 –

+1

你是對的。當ResultGroup的Grade可以爲NULL時,我做了這個假設,儘管這是一個好的觀點。謝謝。 –

+0

感謝亞當,測試和一切正常。被投入這項工作,只開始游泳! – Mark

相關問題