基于财政年度动态获取数据的mysql查询

wz8daaqr  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(286)

我想根据财政年度(即4月18日至3月19日)动态选择字段。我在下表中有准确的数据:

ROWNO   YEAR    MONTH
1       2016    1
2       2016    2
3       2016    6
4       2017    7
5       2017    5
6       2018    4
7       2018    5
8       2018    6
9       2018    7
10      2018    8
11      2018    9
12      2018    10
13      2018    11
14      2018    12
15      2019    1
16      2019    2
17      2019    3
18      2019    3
19      2017    4
20      2017    1
21      2017    2
22      2018    3

我想得到如下所示的2018-19财年的结果

ROWNO   YEAR    MONTH
6       2018    4
7       2018    5
8       2018    6
9       2018    7
10      2018    8
11      2018    9
12      2018    10
13      2018    11
14      2018    12
15      2019    1
16      2019    2
17      2019    3

我用了查询 SELECT * FROM rup_calendar WHERE YEAR BETWEEN YEAR(CURDATE()) AND YEAR(CURDATE())+1; 但无法得到确切的结果。
请给我查询,以获得上述结果。

wgeznvg7

wgeznvg71#

鉴于你掌握的数据,你的方法并不遥远

select rowno,year,month
from     t
where year * 100 + month between 
    case when month(now()) < 4 then (year(now()) - 1) * 100 + 3
    else year(now()) * 100 + 4
    end 
    and
    case when month(now()) < 4 then (year(now())) * 100 + 3
    else (year(now()) + 1)  * 100 + 4
    end

注意,我计算了一个yearmonth字段以便于比较。注意我还没有完全测试过这个,你应该用@variable代替now()来测试。

相关问题