用SQL语句查询出表中所有比控件日期小,并且在小的里面取最大的日期的值

举例:我希望当我用日期控件选择了某个值如2019年10月1日时,查询rq_ 这个表中所有比10月1日小的日期,并且在这些日期里面取最大的那个日期,返回这个日期对应的code,cstock,sstock;


但结果总是提示我,配置数据集错误,求大佬指导,谢谢Thanks♪(・ω・)ノ


image.png

image.png

FineReport 楚小白 发布于 2019-10-30 10:21
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
shirokoLv6资深互助
发布于2019-10-30 10:24
select 1,2,3 form 表
where date=(select max(date) from 表
where date<'${date1}')


最佳回答
0
qingfanLv5见习互助
发布于2019-10-30 10:25
最佳回答
0
萌萌的呆贼Lv4初级互助
发布于2019-10-30 10:26(编辑于 2019-10-30 10:28)

哥们儿  你order by 一下(降序 desc) 就好 取第一条

image.png

  • 楚小白 楚小白(提问者) 感谢解答,我用了 shiroko的方法,对了(#^.^#)
    2019-10-30 22:27 
最佳回答
0
豆豆小可爱Lv5中级互助
发布于2019-10-30 10:31

MAX不能这么写的

改成这样试试看呢

SELECT DATE,A,B,C
FROM 表
WHERE DATE=(SELECT MAX(DATE) DATE FROM 表 WHERE DATE <'${}')


  • 楚小白 楚小白(提问者) 谢谢豆豆小可爱,我用了 shiroko的方法,对了(#^.^#)
    2019-10-30 22:26 
最佳回答
0
黄源Lv6中级互助
发布于2019-10-30 10:46(编辑于 2019-10-30 10:53)

select max(date),a,b,c from (select date md,a,b,c from table where date<'${labeldate1}') t 

group by a,b,c

  • say say 你这逻辑有问题,要求是先比${labeldate1}小再找最大,你是先找最大再比较
    2019-10-30 10:51 
  • 黄源 黄源 回复 say 看修改
    2019-10-30 10:53 
  • 楚小白 楚小白(提问者) 我还有一个地方不对,其实参数那里不应该是 labeldate1,应该是date1,然后值那儿空着。SQL语句引用的时候是‘${date1}‘’,谢谢你Thanks♪(・ω・)ノ
    2019-10-30 22:25 
  • 7关注人数
  • 768浏览人数
  • 最后回答于:2019-10-30 10:53
    请选择关闭问题的原因
    确定 取消
    返回顶部