IF类的公式语句

如截图,原始需求如下:


这里有四个条件和四个字段(客户名称、药品名称、起始日期、结束日期),根据四个条件筛选数据。客户名称和药品名称是必填字段,但起始日期和结束日期是可选字段。


若只有起始日期数据,则使用结束日期为筛选条件,若只有结束日期数据,则使用起始日期为筛选条件,若起始日期和结束日期数据都有,则都作为筛选条件。若没有起始日期和结束日期,则只有客户名称和医院名称作为筛选条件。请问IF语句怎么写。


image.png

FineReport lyy007 发布于 2020-12-29 14:40 (编辑于 2020-12-29 14:42)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
shirokoLv6资深互助
发布于2020-12-29 14:54(编辑于 2020-12-29 14:56)

image.png

if(len($结束日期)=0,NOFILTER,$结束日期)

if(len($起始日期)=0,NOFILTER,$起始日期)


--

你结束日期都写错了,应该是小于等于

最佳回答
0
指间沙Lv6中级互助
发布于2020-12-29 14:54(编辑于 2020-12-29 16:29)

sql过滤把。

where 1=1

 ${if(len(starttime)=0,""," and 时间字段)>='"+starttime+"'")}


 ${if(len(endtime)=0,""," and 段<='"+endtime+"'")}


 ${if(len(basetype) == 0,"","and 客户名称 in ('" + basetype + "')")}

 ${if(len(basetype) == 0,"","and 客户药品名称 in ('" + basetype + "')")}

最佳回答
0
廿旧Lv5见习互助
发布于2020-12-29 16:01(编辑于 2020-12-29 16:01)

根据四个条件筛选数据。客户名称和药品名称是必填字段,但起始日期和结束日期是可选字段。

在SQL的where语句中修改


WHERE 药品名称='${药品名称}' AND 客户名称='${客户名称}'

${if(len(trim(起始日期))=0,""," AND 日期>= '"+起始日期+"' ")}

${if(len(trim(结束日期))=0,""," AND 日期<= '"+结束日期+"' ")}

  • 4关注人数
  • 404浏览人数
  • 最后回答于:2020-12-29 16:29
    请选择关闭问题的原因
    确定 取消
    返回顶部