筛选出开始日期在9月或者结束日期大于9月1日的数据,开始日期小于9月1日的就把9月1日当作开始日期(bd),结束日期大于9月30日的就把9月30日当作结束日期(ed),从子查询中获得以上数据再进行计算便可。要注意datediff后要加1。 select round(sum(pay_amount/days*(datediff(ed,bd)+1)),2) revenue from ( select pay_amount,days,if(begin_date<='2021-09-01',date('2021-09-01'),begin_date) bd, if(end_date>='20...