请问我想根据日期同时查出来当月和上月数据,公式应该怎么写呢?

1646458262(1).jpg

FineReport HQDR 发布于 2022-3-5 13:38
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-3-5 13:47(编辑于 2022-3-5 13:51)

/*查当月的*/

select * from 表名称

where 1=1

${if(len(rq)=0,"","and date_code ='"+ rq + "'")}

/*查上月的的*/

select * from 表名称

where 1=1

${if(len(rq)=0,"","and date_code ='"+ format(MONTHDELTA(rq+"-01",-1),"yyyy-MM") + "'")}

------------还可以把他们拼在一个数据集中。。。这样两个月的都查出来了-----------

select t.经营单位,sum(t.本月金额) as 本月金额,sum(t.上月金额) from (

select 经营单位,本月金额,0 as 上月金额 from 表名称(

where 1=1

${if(len(rq)=0,"","and date_code ='"+ rq + "'")}

union all

/*查上月的的*/

select 经营单位,0 as 本月金额,上月金额 from 表名称

where 1=1

${if(len(rq)=0,"","and date_code ='"+ format(MONTHDELTA(rq+"-01",-1),"yyyy-MM") + "'")}

) t

group by t.经营单位

  • HQDR HQDR(提问者) 我用了这个方法,但是刚打开的时候数据是对的,但是我换个日期查的就不对了
    2022-03-05 14:25 
  • HQDR HQDR(提问者) 我的是两个数据集里
    2022-03-05 14:26 
  • CD20160914 CD20160914 回复 HQDR(提问者) 你的参数名称是什么,你的sql是如何写的。能否上传一下模板
    2022-03-05 14:29 
  • HQDR HQDR(提问者) 回复 CD20160914 select count(1) as sl, c3.SHORT_NAME 公司 from MS_CallDetail a with(nolock) left join MS_Dept c with(nolock) on c.DEPT_ID=a.DEPT_ID left join (select distinct DEPT_ID,left(DEPT_CODE, 5) as DEPT_CODE from MS_Dept) c2 on c2.DEPT_ID=a.DEPT_ID left join (select distinct * from MS_Dept where len(DEPT_CODE) = 5) c3 on c3.DEPT_CODE = c2.DEPT_CODE where c3.SHORT_NAME is not null and c3.SHORT_NAME not in (\'冠松二手车\',\'静安日产\',\'南京斯柯达\',\'停用公司\',\'浦东公司\',\'闸北公司\') and a.COME_TYPE in (2,3) ${if(len(rq) == 0, \"\", \"and left(a.CALL_TIEM,7) = (\'\" + rq + \"\')\") } ${if(len(gs) == 0, \"\", \"and left(c.dept_code,5) in (\'\" + gs + \"\')\") } group by c3.SHORT_NAME (这个是查当月数据) select count(1) as sl, c3.SHORT_NAME 公司 from MS_CallDetail a with(nolock) left join MS_Dept c with(nolock) on c.DEPT_ID=a.DEPT_ID left join (select distinct DEPT_ID,left(DEPT_CODE, 5) as DEPT_CODE from MS_Dept) c2 on c2.DEPT_ID=a.DEPT_ID left join (select distinct * from MS_Dept where len(DEPT_CODE) = 5) c3 on c3.DEPT_CODE = c2.DEPT_CODE where c3.SHORT_NAME is not null and c3.SHORT_NAME not in (\'冠松二手车\',\'静安日产\',\'南京斯柯达\',\'停用公司\',\'浦东公司\',\'闸北公司\') and a.COME_TYPE in (2,3) and left(a.CALL_TIEM,7) = \'${format(MONTHDELTA(rq,-1),\"yyyy/MM\")}\' ${if(len(gs) == 0, \"\", \"and left(c.dept_code,5) in (\'\" + gs + \"\')\") } group by c3.SHORT_NAME(这个是查上个月的)
    2022-03-05 14:31 
  • HQDR HQDR(提问者) 我是要并排显示两个月数据,union all是把数据放一块了
    2022-03-05 14:33 
最佳回答
0
@Lv6资深互助
发布于2022-3-5 13:43
  • 3关注人数
  • 334浏览人数
  • 最后回答于:2022-3-5 13:51
    请选择关闭问题的原因
    确定 取消
    返回顶部