如何用SQL实现本月有数据就显示本月的数据,本月没有数据就显示上月的数据

比如我数据库表中有版本和数据两列。

其中版本有202012,202101,202102,对应的数据列只有202102没有数据为空。


我现在要设置版本为参数,把数据列显示出来。

当我选择202012,202101时都没问题可以显示,但是选择202102时由于没有数据所以显示不出来,此时我要选择最新版本的数据也就是202101的版本显示,怎么写sql


用户S5182147 发布于 2021-2-3 17:40
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-2-3 18:07
select * from dim_dic_date_2021 where day ='2021-01-02'
union all
select * from dim_dic_date_2021   
where (case when (select count(day) from dim_dic_date_2021   where day ='2021-01-02') >=1 then '2' else '1' end) =1 
order by  day desc limit 1

————————

逻辑给你,拿去消化吧!支持优化,自行研究下吧!

————————

image.png

image.png

最佳回答
0
ColdmanLv6高级互助
发布于2021-2-3 17:57

先去搜一下行转列,然后搜一下case when 的用法

  • 3关注人数
  • 445浏览人数
  • 最后回答于:2021-2-3 18:07
    请选择关闭问题的原因
    确定 取消
    返回顶部