if参数问题

原sql如下

select xzq,fy,sj

from (select concat(to_char(a.sj,'mm'),'月')as sj,case when a.gs in('长沙分公司','湖南本部')then '长沙市'

when a.gs = '岳阳分公司' then '岳阳市'

when a.gs = '湘西州分公司' then '湘西土家族苗族自治州'

when a.gs = '衡阳分公司' then '衡阳市'

when a.gs = '永州分公司' then '永州市'

when a.gs = '湘潭分公司' then '湘潭市'

when a.gs = '株洲中分公司' then '株洲市'

when a.gs = '常德分公司' then '常德市'

when a.gs = '怀化分公司' then '怀化市'

when a.gs = '张家界分公司' then '张家界市'

when a.gs = '益阳分公司' then '益阳市' 

when a.gs = '邵阳分公司' then '邵阳市'

when a.gs = '娄底分公司' then '娄底市'

when a.gs = '郴州分公司' then '郴州市'end as xzq,round(sum(a.fy),2) as fy

from  a

where a.sj >= to_date('${dateinyear(startdate,1)+" 00:00:00"}','yyyy-mm-dd hh24:mi:ss') 

and a.sj<= to_date('${startdate} 23:59:59','yyyy-mm-dd,hh24:mi:ss')

group by a.gs,a.sj)

where 1=1

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

order by sj

之前是以xzq作为参数下拉框选择各个地市查看数据的,然后空选是查看所有地市数据。现在要在下拉框里加一个湖南省,选择湖南省是看合计统计数据。而gs这个字段里是没有湖南省这个数据的,所有gs数据加起来才是湖南省数据,请问这个该怎么改

林夕丶 发布于 2020-12-8 16:57 (编辑于 2020-12-8 16:58)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
axingLv6专家互助
发布于2020-12-8 17:28

选湖南省也查看所有地市的数据,在页面加个合计,看你需求可以判断参数为湖南省时隐藏明细

${if(len(xzq)==0||xzq="湖南省",""," and xzq = '"+xzq+"'")}


最佳回答
0
shirokoLv6资深互助
发布于2020-12-8 17:01(编辑于 2020-12-8 17:02)

select * from(

原sql 

union all 

select '湖南省' as xzq,sum(fy) as fy ,sj from (

....

group by sj

)

where ....

order by  sj

  • 3关注人数
  • 238浏览人数
  • 最后回答于:2020-12-8 17:28
    请选择关闭问题的原因
    确定 取消
    返回顶部