SQL按月分组,没有月份的数据如何显示为0?

2024-11-28 20:58:31
推荐回答(3个)
回答(1):

这个问题,应该属于业务问题,不应该让数据库去解决,2019年只有5个月的数据,你费死劲写sql语句补全了后7个月的,明天用户要18年和19年的放一起查,sql语句写就得累死,应该按你现在的写法,将查询年份当成条件放在sql语句里,查询结果有多少个月的,就返回多少个月的,然后也程序代码中,处理没有显示的。
程序逻辑中,从前台传回要查询的年份,当成参数,按照这个参数,创建一个要查询的月份列表的数组,比如要查两年,就列出[201801,201802.....201911,201912],然后根据数据库返回的结果数据,遍历这个数组进行比对,看看缺少哪个月份的数据,然后补0,最终给前台返回补0后的结果数据。

回答(2):

每个月插入一笔0不就完了

回答(3):

在内层里面写 个判断 的结构,
If ( ( mounth is not null and Mounth != ‘’ ) , ism , 0 ) as ism