背景:有块看板需求,需要统计当年看板的信息,并且是需要以周别来统计,并且显示那周的周一和周日时间。
当时的思路是,按照周别统计,我只要把时间转换成周然后再Group下就OK了,结果天杀的甲爸爸非要把那周的周一~周日的日期显示出来,这不是需要我画个圈圈诅咒他108遍的节奏嘛。
然后想了个办法,写个视图,视图是捞取2年内时间,按照周别显示,并且显示周一和周日,然后再group完订单表,以视图作为主表来串group的订单表,就搞定了。
话不多说,上SQL:
--2年内的所有周别所对应的周一和周日
select to_char(sysdate,'yyyy') || monday.the_week week,
decode(sign(monday.the_day - sunday.the_day),
-1,
monday.the_day,
monday.the_day - 6) monday,
sunday.the_day sunday
from (select to_char(wwm, 'WW') the_week,
to_char(wwm, 'D') the_daynum,
wwm the_day
from (select trunc(trunc(sysdate