查询月份a是多选

数据库存有年份 year 月份 month ,如何设置数据库的月份的范围是,a-5到a?(困惑点是月份出现多个月份如何书写以及考虑跨年时间)

FineReport 帆软用户3yxeX64K8K 发布于 2023-2-8 09:47
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
帆软用户3yxeX64K8KLv2见习互助
发布于2023-2-8 10:43

我是通过对时间和年份进行rownumber排序,取最近的6个数

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-2-8 09:50

year in('2022','2023') month in ('01','02')

最佳回答
0
yzm339714Lv6中级互助
发布于2023-2-8 09:51(编辑于 2023-2-8 09:51)

页面上就直接 下拉复选框 ,把年份和月份合成一个,  sql判断 就是   以 sqlserver  为例 concat(year,'-',month) in ('${a}')

最佳回答
0
YmengLv5中级互助
发布于2023-2-8 09:53

a只是月份?你的问题少一个a对应的年份

  • 帆软用户3yxeX64K8K 帆软用户3yxeX64K8K(提问者) 查询有年份,假设查询年份是b,就是出现的问题是,我要保证我数据库的年份+月份,是在大于等于a+b的前五个月的时间,小于等于a+b,并且月份是多选项,如何书写这部分的代码
    2023-02-08 09:55 
  • Ymeng Ymeng 回复 帆软用户3yxeX64K8K(提问者) Oracle数据库可以这样去写 WHERE CONCAT(YEAR,MONTH)>=TO_CHAR(ADD_MONTHS(TO_DATE(CONCAT(\'${B}\',\'${A}\'),\'YYYYMM\'),-5),\'YYYYMM\') AND CONCAT(YEAR,MONTH)<=CONCAT(\'${B}\',\'${A}\')
    2023-02-08 10:03 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-8 10:34

需要拼接SQL 中的where部分。

参考示例(此处仍然已SqlServer 为例)

WorkBook1.rar

image.png

image.png

  • 3关注人数
  • 336浏览人数
  • 最后回答于:2023-2-8 10:43
    请选择关闭问题的原因
    确定 取消
    返回顶部