0
-------------------------------
StudentID| SubCode | Marks |
-------------------------------
B016124 | 112 | 89 |
B016124 | 114 | 91 |
B016124 | 116 | 99 |
-------------------------------
B016129 | 112 | 78 |
B016129 | 114 | 88 |
B016129 | 116 | 0 |
输出:与条件语句选择
SubCode=112 SubCode=114 SubCode=116 tot of 112+114 |Tot 112+114+116
-----------------------------------------------------------------------------------
StudentID | PractEx112 | PractEx114| TotalPract |ExamMrks116 | TotalMarks |
-----------------------------------------------------------------------------------
B016124 | 89 | 91 | 180 | 90 | 270 |
-----------------------------------------------------------------------------------
B016129 | 78 | 88 | 166 | 0 | 0 |
-----------------------------------------------------------------------------------
Select StudentID,
, sum(CASE WHEN SubCode = 112 THEN Marks END) AS PractEx112
, sum(CASE WHEN SubCode = 114 THEN Marks END) AS PractEx114
, sum(CASE WHEN SubCode IN(112,114) THEN Marks END) AS TotalPract
, sum(CASE WHEN SubCode = 116 THEN Marks END) AS ExamMrks116
FROM STUDENTS
GROUP BY StudentID
如何计算上面的SELECT语句中的TotalMarks其中 TotalMarks = 0,如果学生没有采取ExamMrks116(子码= 116) 。
否则使用PractEx112的总和(SUBCODE = 112),PractEx114(子码= 114)& ExamMrks116(子码= 116)
请格式化您的问题。我理解你的意见和预期的输出,但我无法理解你对所需逻辑的陈述。 – Andreas 2014-09-25 22:02:23
如何格式化图像或文本格式的问题 – Tina31 2014-09-25 22:04:10
我需要计算TotalMarks,它是PractEx112 + PractEx114 + ExamMrks116。如果ExamMrks116没有被学生采用,他们的粒子不会被添加到TotalMarks和TotalMarks = 0中,只有在ExamMarks116列中输入了标记时才会添加它。 – Tina31 2014-09-26 03:53:31