先看我要的效果:
将指定月份的数据查出,如果那月28天就28条数据,如果那月30天就30条数据。如果某一天没有数据就为空
资源:原有的表只有这个:sys_ag_quotereceipt_bill(销售表每条数据包含有日期字段qr_creatorDate)
此时要创建一个辅助表:里面只有一个字段将一个月的31天放进去。
假设qr_form_status字段是我们要合计的字段列
select CONCAT(substr('2021-03',1,4),'年',substr('2021-03',6,2),'月',d.mm,'日') date,substr(t.qr_creatorDate,1,10) tt,sum(t.qr_form_status) from datautil d
left JOIN (select * from sys_ag_quotereceipt_bill t where t.qr_creatorDate like '2021-03%') t ON d.mm=substr(t.qr_creatorDate,9,2)
where d.mm<=substr((SELECT(last_day("2021-03-02"))),9,2)
GROUP BY d.mm
SQL解释:
其中concat()函数是拼接字符串;
其中substr()是截取字符串:从第几位开始往后位移几位;
其中其中last_day根据其中的日期得到当前月的最后一天的日期:2021-03-31
得出结果:
可以看到已经成功(屏幕限制还有一条在下面没截图了)。