我有 mark
table。我把所有的主题标记都存储在这里。我储存
like gpa=3.5
或者 gpa=F
现在我想 marksheet
所以我需要 group by
. 我想如果一个学生得到任何科目 gpa =F
结果表只显示 Fail/f
在此处查询
CREATE VIEW result as SELECT name as name,roll as roll,class as
class,subject_name as subject,exam_type as exam_type,sum(full_mark) as
full_mark,sum(getmark) as getmark, if(gpa =='f', 'F',sum(gpa)) as
total_gpa FROM mark GROUP by roll,class,exam_type
table
1条答案
按热度按时间km0tfn4u1#
你的问题是
IF
在SUM
以及SUM
简单地处理gpa的字符串值(例如。'f'
)值为0表示SUM
始终是数字(从不等于'f'
). 你需要做的是检查你的gpa值SUM
它,然后在这种情况下使用一个特殊值(例如-9999)使结果小于0,然后您可以测试总和小于0,并将其作为给出“f”结果的条件,例如。注意,因为
IF
是文本,我们必须SUM
作为文本太多,以获得正确的结果。我在sqlfiddle上创建了一个小演示:
输出: