我被困在一个查询上,
其中我有 52 周数据,我可以通过获取周数并与数据周数进行比较来根据 sysdate 进行安排。
现在我想要做的是,如果当前周数是 10,我想按降序排列所有周,例如取决于 sysdate 周数 week10,week9,week8.........week11,
有了这个查询
select "Weekly","Quarter","SALES","Monthly",week_number from fiscal_calendar
where week_number <= TO_CHAR(TO_DATE(sysdate,'DD-mon-YYYY'),'iw')
order by week_number desc;
我可以将数据排序到第 1 周,但我想继续这个序列,就像在第 11 周结束一样
那么是不是我做错了什么
请指教
请您参考如下方法:
如果我理解正确,您可以尝试
SELECT * FROM
(SELECT "Weekly","Quarter","SALES","Monthly",week_number FROM fiscal_calendar
WHERE week_number <= TO_NUMBER(TO_CHAR(SYSDATE,'IW'))
ORDER BY week_number desc) t1
UNION ALL
SELECT * FROM
(SELECT "Weekly","Quarter","SALES","Monthly",week_number FROM fiscal_calendar
WHERE week_number > TO_NUMBER(TO_CHAR(SYSDATE,'IW'))
ORDER BY week_number) t2
这里是简化版 SQLFiddle example




