一共12个月,最新月的数据在倒数第4个柱子上。
横坐标的怎么写比较好。
需要的下面的数据格式
年月 月份
202205 5
202206 6
202207 7
202208 8
202209 9
202210 10
202211 11
202212 12
202301 1
202302 2
202303 3
202304 4
以此类推,根据数据库里面的数据,最新月都是在倒数第4个上。
按系统来减12个月应该这样的,具体你要从什么时候开始,你把序号修改一下就行了
select t.年月,t.月份 from (
select
to_char(ADD_MONTHS (SYSDATE,-rownum),'yyyymm') as 年月,
to_char(ADD_MONTHS (SYSDATE,-rownum),'mm') as 月份,
to_char(ADD_MONTHS (SYSDATE,-rownum),'yyyymm')*1 as 排序
from dual connect by 12>=rownum
) t
order by t.排序
直接建一个数据表不更方便
SELECT
--当前月显示为倒数第四位置即增加三个月开始递减
ADD_MONTHS(ADD_MONTHS(TRUNC(SYSDATE,'mm'),3), -LEVEL+1 ) AS 月初,
LAST_DAY(ADD_MONTHS(ADD_MONTHS(TRUNC(SYSDATE,'mm'),3), -LEVEL+1 )) AS 月末 ,
TO_CHAR(ADD_MONTHS(ADD_MONTHS(TRUNC(SYSDATE,'mm'),3), -LEVEL+1 ),'yyyy-mm') AS 年月,
TO_CHAR(ADD_MONTHS(ADD_MONTHS(TRUNC(SYSDATE,'mm'),3), -LEVEL+1 ),'mm') AS 月份
FROM DUAL
CONNECT BY LEVEL <= 12
ORDER BY 1 --排序
TO_CHAR(ADD_MONTHS (SYSDATE,-rownum+3),'yyyymm') as 年月,
TO_NUMBER(TO_CHAR(ADD_MONTHS (SYSDATE,-rownum+3),'mm')) as 月份
order by 年月