帆软where后边怎么进行多个参数if条件判断

select strftime('%Y-%m',d.订购日期) as 订购年月,

count(d.订单ID) as 订单数量,

sum(dm.单价*dm.数量*(1-dm.折扣)) as 月销售,

strftime('%Y',订购日期) as 年,

strftime('%m',订购日期) as 月 

FROM 订单 d join 订单明细 dm on d.订单ID=dm.订单ID 

where 年=('${year}') and 月 in ('${mid}') and 是否已付=('${tf}') 

group by strftime('%Y-%m',订购日期) 

order by 年;

怎么把where后边的多个参数变成这种形式${if(len(year) == 0,"","and 年 in ('" + year + "')")}


FineReport 深巷 发布于 2020-6-28 17:42 (编辑于 2020-6-28 18:00)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
影丶Lv5高级互助
发布于2020-6-28 17:48


select strftime('%Y-%m',d.订购日期) as 订购年月,
count(d.订单ID) as 订单数量,
sum(dm.单价*dm.数量*(1-dm.折扣)) as 月销售,
strftime('%Y',订购日期) as 年,
strftime('%m',订购日期) as 月 
FROM 订单 d join 订单明细 dm on d.订单ID=dm.订单ID 
where 1 = 1
${if(len(year)==0,"","and 年='"+year+"'")}
${if(len(mid)==0,"","and 月in ('"+mid+"')")}
${if(len(tf)==0,"","and 是否已付='"+tf+"'")}
group by strftime('%Y-%m',订购日期) 
order by 年;



最佳回答
0
luojian0323Lv7资深互助
发布于2020-6-28 17:45

你都已经会了,怎么还问呢?

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