2017-05-22 1 views
0

私は、この結果は、式でグループから設定されています:グループ内のどこでケースを使用して合計するか?

enter image description here

これからです:

私は上記の結果を得るために使用することができますどのような技術
SELECT 
    list.Id, 
    SUM(answer.score) totalScoreOfList 
    --,sum(answer.score) score of student id 5.. something like sum(answer.score) where studentId = 5 
    -- or case when studenti.id = 5 then sum(answer.score) else 0 end 
FROM 
    list 
LEFT JOIN student ... 
LEFT JOIN answer ... 
GROUP BY 
    exercise.id 

enter image description here

答えて

1

あなたの質問のタイトルは、あなたがCASE式を使用する必要があり、言うように:

SELECT 
    list.Id, 
    SUM(answer.score) totalScoreOfList, 
    SUM(CASE WHEN studentId = 5 THEN answer.score END) [score of student id 5] 
FROM 
    list 
LEFT JOIN student ... 
LEFT JOIN answer ... 
GROUP BY 
    list.id; 
+0

@MuriloKunzeの一部投稿していないコードがクエリを破っている – Lamak

1

あなたは以下のように場合を使用することができます。その後、

SELECT 
    list.Id, 
    SUM(answer.score) totalScoreOfList, 
    SUM(case when StudentId = 5 then answer.score else 0 end) as TotalScoreOfStudentWithid5 
... 
関連する問題