【发布时间】:2018-05-29 10:05:23
【问题描述】:
select s_id, s_f_name, s_l_name, s_roll_no, s_class,
SUM(mid_1_english + mid_2_english)/2 as mid_english,
SUM(mid_1_mathematics + mid_2_mathematics)/2 as mid_mathematics,
semester_final_english,
semester_final_mathematics,
SUM((mid_1_english + mid_2_english)/2 + semester_final_english) as total_english,
SUM((mid_1_mathematics + mid_2_mathematics)/2 + semester_final_mathematics) as total_mathematics,
SUM((mid_1_mathematics + mid_2_mathematics)/2 + (mid_1_english + mid_2_english)/2 + semester_final_mathematics + semester_final_mathematics) as total
from elaborate_term_result_sheet
group by s_f_name, s_l_name
order by s_roll_no;
运行创建的这个查询后,它确实显示了输出,但值有点波动
mid_1_english + mid_2_english = mid_english
mid_1_mathematics + mid_2_mathematics = mid_mathematics
mid_english + term_final_english = total_english
mid_mathematics + term_final_mathematics = total_mathematics
total = total_english + total_mathematics
【问题讨论】:
-
也许您可以更改例如 SUM()/2 如下 (1.0 * SUM())/2 这会将使用的数据类型从整数更改为十进制,这样您就不会在计算中丢失十进制数据
-
不,它不起作用
-
什么值错了?
-
... + semester_final_mathematics + semester_final_mathematics) as total-- 你能在这段代码中发现任何(逻辑)错误吗? -
你确定你最后的计算应该是semester_final_mathematics+semester_final_mathematics吗?应该是数学+英语吗?