如截图,原始需求如下:
这里有四个条件和四个字段(客户名称、药品名称、起始日期、结束日期),根据四个条件筛选数据。客户名称和药品名称是必填字段,但起始日期和结束日期是可选字段。
若只有起始日期数据,则使用结束日期为筛选条件,若只有结束日期数据,则使用起始日期为筛选条件,若起始日期和结束日期数据都有,则都作为筛选条件。若没有起始日期和结束日期,则只有客户名称和医院名称作为筛选条件。请问IF语句怎么写。
if(len($结束日期)=0,NOFILTER,$结束日期)
if(len($起始日期)=0,NOFILTER,$起始日期)
--
你结束日期都写错了,应该是小于等于
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 + "')")}
根据四个条件筛选数据。客户名称和药品名称是必填字段,但起始日期和结束日期是可选字段。
在SQL的where语句中修改
WHERE 药品名称='${药品名称}' AND 客户名称='${客户名称}'
${if(len(trim(起始日期))=0,""," AND 日期>= '"+起始日期+"' ")}
${if(len(trim(结束日期))=0,""," AND 日期<= '"+结束日期+"' ")}