SQL基于月份字段名计算指定区间字段值总和问题求助
现有SQL报错原因
你写的SQL存在两个核心问题:
- 语法结构不合法:外层查询和子查询之间没有正确的连接逻辑,且完全没有包含字段求和的核心计算逻辑
- 不需要查询系统表获取字段:你已经明确表内的月份字段名就是固定的May、June、July、August、September,直接引用字段计算即可
正确实现代码
场景1:统计整张表所有行的5-9月累计总和
SELECT SUM(May + June + July + August + September) AS total_may_to_september FROM session2021;
场景2:统计每行单独的5-9月字段总和
SELECT *, (May + June + July + August + September) AS per_row_may_to_september_sum FROM session2021;
空值兼容处理
如果你的月份字段可能存在NULL值,需要用空值处理函数包裹字段,避免求和结果异常,SQL Server环境示例:
SELECT SUM(ISNULL(May,0) + ISNULL(June,0) + ISNULL(July,0) + ISNULL(August,0) + ISNULL(September,0)) AS total_may_to_september FROM session2021;
MySQL环境将ISNULL替换为IFNULL即可。
内容的提问来源于stack exchange,提问作者Zeeshan Sulemani
相关产品推荐
相关产品推荐

