fr中sql问题

select * from  a  where time='20210501',条件中的时间是页面传的参数,假如a表中的数据最后更新的时间是20210501,

如果此时传入参数是20210502,是查不到数据的,鉴于这种情况,将查询的数据显示最后时间,

补充:查询最新的数据,如果没有最新的,就查询最后一次更新的数据,查询的数据是增量部分

更新的数据,则展示出20210501的数据,此时的sql如何写?

Qian同学 发布于 2021-6-3 15:43 (编辑于 2021-6-3 15:48)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
杨朝健Lv5中级互助
发布于2021-6-3 15:46(编辑于 2021-6-3 15:46)

select * from  a  

where time= (select max(time) from  a  where time<='20210502')

最佳回答
0
snrtuemcLv8专家互助
发布于2021-6-3 15:45(编辑于 2021-6-3 15:49)

select * from  a  where time=(select max(time) from  a)

  • Qian同学 Qian同学(提问者) 这样最大的时间是5月份数据,那么查询4月份的数据就查不到了
    2021-06-03 15:50 
  • snrtuemc snrtuemc 回复 Qian同学(提问者) 那就看下楼下的,子查询加一个月份限制,根据你参数的月份,查当月最大日期
    2021-06-03 15:53 
最佳回答
0
liu.yangLv2初级互助
发布于2021-6-3 15:50

select * from a where time= (case when (selct max(time) from a)>='${time}' then '${time}' else (selct max(time) from a) end)

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-6-3 16:04

select p.* from  a [p]

inner join 

(select  max(time) t_ from  a  where time<='20210501') t

on p.time=t.t_

最佳回答
0
kaqiyuLv6初级互助
发布于2021-6-3 16:10

写个if语句,参数日期大于数据库更新最大日期,取数据库最大日期;反之,取参数日期

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