select (CASE WHEN b.month = '2023-05' THEN b.create_income ELSE 0 END) as two_income from a left join b on b.kefuid = a.id left join d on d.kefuid = a.id where a.brand = '16' and a.is_del = 0 and a.is_lizhi = 0 group by a.id limit 1;必须要通过sum才能正确的输出case when
时间: 2024-02-26 08:57:47 浏览: 69
sql学习之CASE WHEN THEN ELSE END的用法
根据你提供的 SQL 语句,CASE WHEN 后面的语句会根据 b.month 的值来进行逻辑判断,并返回 b.create_income 或 0。在这个查询语句中,由于使用了 GROUP BY 对 a.id 进行分组,所以必须使用聚合函数才能对每个分组进行计算。如果不使用聚合函数,会出现错误或者无法得到正确的结果。
因此,你需要使用 SUM 函数来对 two_income 进行求和,正确输出结果。例如,可以修改你的 SQL 语句如下:
```
select sum(CASE WHEN b.month = '2023-05' THEN b.create_income ELSE 0 END) as two_income from a left join b on b.kefuid = a.id left join d on d.kefuid = a.id where a.brand = '16' and a.is_del = 0 and a.is_lizhi = 0 group by a.id limit 1;
```
这里使用了 SUM 函数对 two_income 进行求和,从而得到正确的结果。
阅读全文