发布网友 发布时间:2022-04-30 02:19
共1个回答
热心网友 时间:2022-05-02 02:19
----表名tb,日期字段dt,金额字段,amt追答--那再加两个union就可以了,所有金额汇总是指所有年份的?今年的?还是上个月到今天的?按照上个月到今天来算吧
select sum(last_mon_amt) last_mon_amt,sum(cur_mon_amt) cur_mon_amt,sum(last_day_amt ) last_day_amt,sum(cur_day_amt) cur_day_amt,sum(total_amt) total_amt from(
select sum(amt) last_mon_amt,0 cur_mon_amt,0 last_day_amt,0 cur_day_amt,0 total_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,0 cur_day_amt,0 total_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,0 cur_day_amt,0 total_amt from tb where date_format(dt, '%Y%m%d') = date_format(date_add(sysdate(), interval -1 day),'%Y%m%d') --昨日合计
union all
select 0 last_mon_amt,0 cur_mon_amt,0 last_day_amt,sum(amt) cur_day_amt,0 total_amt from tb where date_format(dt, '%Y%m%d') = date_format(sysdate(),'%Y%m%d') --今日合计
union all
select 0 last_mon_amt,0 cur_mon_amt,0 last_day_amt,0 cur_day_amt,sum(amt) total_amt from tb where date_format(dt, '%Y%m') >= date_format(date_add(sysdate(), interval -1 month), '%Y%m') --上月至今金额合计
) tb1