查询条件可以放两组根据日期查询的条件吗

1663553927984.png

FineReport HMvTVzmj 发布于 2022-9-19 10:18
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2022-9-19 10:31(编辑于 2022-9-19 10:41)

 WHERE 申报时间 BETWEEN '申报开始时间' AND '申报结束时间'

AND 领取时间 BETWEEN '领取开始时间' AND '领取结束时间'

${if(and(len(申报开始时间)>0,len(申报结束时间)>0),"申报时间 BETWEEN '"+申报开始时间+"' AND '"+申报结束时间+"'","")}

select ORG_NAME, EXPENSE_TYPE_NAME, PLAN_TYPE, PLAN_SERVICE_TYPE, PLAN_ID, MR_NO, REQ_DATE, ITEM_ID, ITEM_NAME, ITEM_DESC, REQ_QTY, UOM, DRAWDOWN_ID, INV_QTY, UNIT_PRICE, RELEASE_TOT_PRICE, DATE_PRC, PROJECT_ID, PROJECT_NAME, REQ_POS_ID, USER_NAME FROM BAFVMACJY2.T_ADS_SRV_Y2CGBJ04 WHERE 1 = 1 

${if(and(len(startDate)>0,len(endDate)>0),"AND REQ_DATE BETWEEN '"+startDate+"' and '"+endDate+"'","")}

${if(and(len(startDate2)>0,len(endDate2)>0),"AND DATE_PRC BETWEEN '"+startDate2+"' and '"+endDate2+"'","")}

最佳回答
0
lbstjwLv7初级互助
发布于2022-9-19 10:20

可以的,写好参数条件就行了

  • HMvTVzmj HMvTVzmj(提问者) 但是sql语句应该怎么写了,我试了两种方法,都不可以,要么查出来的不是我选择的日期范围,要么就是其中一对日期控件不能用
    2022-09-19 10:24 
最佳回答
0
weibwLv7高级互助
发布于2022-9-19 10:21

可以的,操作上是一模一样的

  • HMvTVzmj HMvTVzmj(提问者) 但是sql语句应该怎么写了,我试了两种方法,都不可以
    2022-09-19 10:23 
  • HMvTVzmj HMvTVzmj(提问者) 要么查出来的不是我选择的日期范围,要么就是其中一对日期控件不能用
    2022-09-19 10:24 
  • weibw weibw 回复 HMvTVzmj(提问者) 贴你的SQL
    2022-09-19 10:52 
最佳回答
0
我在等风也等你Lv6初级互助
发布于2022-9-19 10:28(编辑于 2022-9-19 10:46)

日期对格式要求会高一点,你大于等于有的可能格式不对,试试between and,关键词,你先两个日期单独执行能不能成功,然后用四个if参数,

image.png

  • HMvTVzmj HMvTVzmj(提问者) 但是我不知道使用if如何拼接
    2022-09-19 10:29 
  • 我在等风也等你 我在等风也等你 回复 HMvTVzmj(提问者) 你sql语句发一下,我给你改,
    2022-09-19 10:29 
  • HMvTVzmj HMvTVzmj(提问者) 回复 我在等风也等你 好的,你用DATE_PRC字段就可以,REQ_DATE字段我照着你的写 select ORG_NAME, EXPENSE_TYPE_NAME, PLAN_TYPE, PLAN_SERVICE_TYPE, PLAN_ID, MR_NO, REQ_DATE, ITEM_ID, ITEM_NAME, ITEM_DESC, REQ_QTY, UOM, DRAWDOWN_ID, INV_QTY, UNIT_PRICE, RELEASE_TOT_PRICE, DATE_PRC, PROJECT_ID, PROJECT_NAME, REQ_POS_ID, USER_NAME FROM BAFVMACJY2.T_ADS_SRV_Y2CGBJ04 WHERE 1 = 1 ${if(len(EXPENSE_TYPE_NAME)==0,\" \",\" and EXPENSE_TYPE_NAME like \'%\" + EXPENSE_TYPE_NAME + \"%\' \")}
    2022-09-19 10:34 
  • 我在等风也等你 我在等风也等你 回复 HMvTVzmj(提问者) 我随便写一下,你看一下,1,2,3,4代表你的四个时间,开始跟结束,注意大于小于号,可以自己改,select DATE_PRC1,DATE_PRC2,DATE_PRC3,DATE_PRC4, USER_NAME FROM BAFVMACJY2.T_ADS_SRV_Y2CGBJ04 WHERE 1 = 1 ${if(len(EXPENSE_TYPE_NAME)==0,\\\" \\\",\\\" and EXPENSE_TYPE_NAME like \\\'%\\\" + EXPENSE_TYPE_NAME + \\\"%\\\' \\\")} $if(len(DATE_PRC1) == 0,\"\",\"and DATE_PRC1 < \'\" + DATE_PRC1 + \"\'\") $if(len(DATE_PRC2) == 0,\"\",\"and DATE_PRC2 > \'\" + DATE_PRC2 + \"\'\") $if(len(DATE_PRC3) == 0,\"\",\"and DATE_PRC3 < \'\" + DATE_PRC3 + \"\'\") $if(len(DATE_PRC4) == 0,\"\",\"and DATE_PRC4 > \'\" + DATE_PRC4 + \"\'\")
    2022-09-19 10:40 
  • 我在等风也等你 我在等风也等你 回复 HMvTVzmj(提问者) 这个表示你的开始时间,或者结束时间,任意一个都可以为空,如果要不为空就不要if,直接where DATE_PRC>\'${date}\' and DATE_PRC<= \'${date}\'
    2022-09-19 10:43 
最佳回答
0
RiveryLv5中级互助
发布于2022-9-19 10:30

把你的SQL放出来看看呢

  • HMvTVzmj HMvTVzmj(提问者) 我原本是这样写的 select ORG_NAME, EXPENSE_TYPE_NAME, PLAN_TYPE, PLAN_SERVICE_TYPE, PLAN_ID, MR_NO, REQ_DATE, ITEM_ID, ITEM_NAME, ITEM_DESC, REQ_QTY, UOM, DRAWDOWN_ID, INV_QTY, UNIT_PRICE, RELEASE_TOT_PRICE, DATE_PRC, PROJECT_ID, PROJECT_NAME, REQ_POS_ID, USER_NAME FROM BAFVMACJY2.T_ADS_SRV_Y2CGBJ04 WHERE 1 = 1 AND REQ_DATE >=\'${startDate}\' and REQ_DATE <=\'${endDate}\' and DATE_PRC >=\'${startDate2}\' and DATE_PRC <=\'${endDate2}\'
    2022-09-19 10:37 
  • 4关注人数
  • 496浏览人数
  • 最后回答于:2022-9-19 10:46
    请选择关闭问题的原因
    确定 取消
    返回顶部