mysql一张表多条数据返回 上个月,当月,昨天,今天的总金额应该怎么写?

2025-03-16 08:37:58
推荐回答(1个)
回答(1):

----表名tb,日期字段dt,金额字段,amt
select sum(last_mon_amt) last_mon_amt,sum(cur_mon_amt) cur_mon_amt,sum(last_day_amt ) last_day_amt from(
select sum(amt) last_mon_amt,0 cur_mon_amt,0 last_day_amt from tb where date_format(dt, '%Y%m') = date_format(date_add(sysdate(), interval -1 month), '%Y%m') --上月合计
union all
select 0 last_mon_amt,sum(amt) cur_mon_amt,0 last_day_amt from tb where date_format(dt, '%Y%m') = date_format(sysdate(),'%Y%m') --当月合计
union all
select 0 last_mon_amt,0 cur_mon_amt,sum(amt) last_day_amt from tb where date_format(dt, '%Y%m%d') = date_format(date_add(sysdate(), interval -1 day),'%Y%m%d') --昨日合计
) tb1