[英]Convert rows to columns and calculate sum
我有這個
我想要這個
但我得到這個
我的查詢是
SELECT SID,
NAME,
SUBJECT, (
CASE
WHEN EXAMTYPE IN ('ASSIGNMENTS',
'PRACTICAL') THEN SUM(MARKS)
ELSE 0
END) AS "ASSIGNMENTS + PRACTICAL", (
CASE
WHEN EXAMTYPE = 'WRITTEN' THEN SUM(MARKS)
ELSE 0
END) AS "WRITTEN"
FROM MARKSHEET
WHERE EXAMTYPE IN ('ASSIGNMENTS',
'PRACTICAL',
'WRITTEN')
GROUP BY SID,
NAME,
SUBJECT,
EXAMTYPE
我正在使用 IBM DB2。我將永遠感激任何/所有幫助。 謝謝!
您需要將 case 表達式放在 sum() 中 - 如sum(case when...)
此外,從group by clause
中刪除examType
字段
SELECT SID,
NAME,
SUBJECT, sum(
CASE
WHEN EXAMTYPE IN ('ASSIGNMENTS',
'PRACTICAL') THEN MARKS
ELSE 0
END) AS "ASSIGNMENTS + PRACTICAL", (
sum(CASE
WHEN EXAMTYPE = 'WRITTEN' THEN MARKS
ELSE 0
END) AS "WRITTEN"
FROM MARKSHEET
WHERE EXAMTYPE IN ('ASSIGNMENTS', 'PRACTICAL', 'WRITTEN')
GROUP BY SID, NAME, SUBJECT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.