Microsoft Report Builder中带条件的行表达式求和问题
解决方案
- 先通过CTE按学校分组计算各学校的SRB/非SRB人数总和,再基于分组结果应用规则求和,避免直接嵌套聚合函数导致的报错:
WITH school_stats AS ( SELECT school_name, -- 替换这里的srb_condition为你实际的SRB判定条件 SUM(CASE WHEN srb_condition THEN student_count ELSE 0 END) AS srb_total, SUM(CASE WHEN NOT srb_condition THEN student_count ELSE 0 END) AS non_srb_total FROM your_table GROUP BY school_name ) SELECT SUM( CASE WHEN school_name != 'Bad school' THEN (srb_total / 4 * 2) + (non_srb_total / 6 * 2) ELSE 0.5 END ) AS final_total FROM school_stats;
- 核心逻辑:
- 用CTE
school_stats拆分计算,先按学校聚合出SRB和非SRB的人数总和,避免在SUM函数内嵌套聚合操作引发语法错误 - 外层对每个学校的计算结果求和,自动将"Bad school"对应的0.5纳入总合
- 用CTE
- 替换提示:把代码中的
srb_condition和student_count替换为你SQL中实际的判定条件和学生数字段
内容的提问来源于stack exchange,提问作者Taylor Korthals
相关产品推荐
相关产品推荐

