查参数上月份的数据如何写SQL语句?

image.png

如图p1为日期的参数名 ,如何写SQL语句使查出来的数据是参数p1上个月的数据,要求只能改SQL语句

用户YWMYW1541607 发布于 2021-11-10 10:33
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
卡其鱼Lv6初级互助
发布于2021-11-10 10:45

t.indutydate>=date_sub(concat('${P1}','-01'),interval 1 month)   -- 上月月初

AND t.indutydate<=date_sub(concat('${P1}','-01'),interval 1 DAY)     -- 上月月末

具体根据你的日期字段的类型改变

最佳回答
0
luojian0323Lv7资深互助
发布于2021-11-10 10:37

你控件上的月份是什么格式?是年月还是只有月?

如果只有月

sql 中的判断应该是 month(t.indutydate)='${month}'

最佳回答
0
小猴子123Lv3见习互助
发布于2021-11-10 13:24(编辑于 2021-11-10 13:25)

数据集里面加上这两个参数,一个开始,一个结束。然后做两个时间空间就行,就能取时间段了 

${if(len(starttime)=0,""," and to_char(A,'yyyy-mm-dd')>='"+starttime+"'")}

  ${if(len(endtime)=0,""," and to_char(A,'yyyy-mm-dd')<'"+endtime+"'")} 

最佳回答
0
正在崛起的大牛Lv4见习互助
发布于2021-11-10 14:08

参考一下

      ${IF(LEN(djsj_s) = 0, "", " AND lasj >= '" + monthdelta(djsj_s,-1) + "' ")}

      ${IF(LEN(djsj_e) = 0, "", " AND lasj <= '" + monthdelta(djsj_e,-1) + "' ")}

  • 5关注人数
  • 535浏览人数
  • 最后回答于:2021-11-10 14:08
    请选择关闭问题的原因
    确定 取消
    返回顶部