ITPUB??ì3
ITPUB论坛 » Oracle开发 » sql实现当月日历

标题: sql实现当月日历
离线 wngsheng
中级会员



精华贴数 0
个人空间 0
技术积分 479 (4529)
社区积分 965 (1134)
注册日期 2001-12-6
论坛徽章:5
生肖徽章2007版:羊生肖徽章2007版:牛生肖徽章2007版:猴2008北京奥运纪念徽章:花样游泳2008新春纪念徽章 
      

发表于 2007-7-9 16:53 
sql实现当月日历


select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
(select case when d=1 then dd end su,
       case when d=2 then dd end mo,
       case when d=3 then dd end tu,
       case when d=4 then dd end we,
       case when d=5 then dd end th,
       case when d=6 then dd end fr,
       case when d=7 then dd end sa,
       d,w,iw
from(
select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
(select trunc(sysdate,'month')+level-1 dates from dual
connect by rownum<last_day(sysdate)-trunc(sysdate,'month')
)
)
)
group by iw
order by iw;


环境:oracle 10g


__________________
我为人人,人人为我,天下大公。
只看该作者    顶部
离线 junsansi
无名扫把


来自 bj
精华贴数 10
个人空间 10664
技术积分 11632 (117)
社区积分 3590 (458)
注册日期 2006-7-17
论坛徽章:201
现任管理团队成员生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2007-7-9 17:02 
Re: sql实现当月日历



QUOTE:
最初由 wngsheng 发布

select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
(select case when d=1 then dd end su,
       case when d=2 then dd end mo,
       case when d=3 then dd end tu,
       case when d=4 then dd end we,
       case when d=5 then dd end th,
       case when d=6 then dd end fr,
       case when d=7 then dd end sa,
       d,w,iw
from(
select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
(select trunc(sysdate,'month')+level-1 dates from dual
connect by rownum<last_day(sysdate)-trunc(sysdate,'month')
)
)
)
group by iw
order by iw;


环境:oracle 10g


不错,不过w和iw留1个即可


__________________

=======================================    我爱我佳

扫地不过是我表面上的工作,我真正的身份其实是无名老僧------------------手里那根扫把~~~~
只看该作者    顶部
离线 hanjs
高级会员


来自 沈阳
精华贴数 1
个人空间 0
技术积分 10326 (137)
社区积分 52 (5473)
注册日期 2006-7-30
论坛徽章:18
会员2007贡献徽章蓝色妖姬嫦娥授权会员开发板块每日发贴之星2008北京奥运纪念徽章:铁人三项
生肖徽章2007版:兔数据库板块每日发贴之星数据库板块每日发贴之星2008新春纪念徽章生肖徽章2007版:鸡生肖徽章2007版:鼠

发表于 2007-7-9 17:03 
不错,不过都有查出一年的了!


__________________
Database Concepts
Database Performance Tuning Guide and Reference
只看该作者    顶部
离线 jellywang
JJ娃 尿娃 水娃


精华贴数 1
个人空间 10
技术积分 4769 (326)
社区积分 7210 (247)
注册日期 2006-12-17
论坛徽章:57
现任管理团队成员NBA季后赛纪念徽章授权会员纽约尼克斯生肖徽章2007版:牛行业板块每日发贴之星
ITPUB新首页上线纪念徽章     

发表于 2007-7-9 21:57 



__________________
钱不是问题,问题是没钱!   

JJ之水天上来,灌到海区不复回!!

































































































































































































































































































































空空如也!!

只看该作者    顶部
离线 lixuezhen
探险者


精华贴数 0
个人空间 0
技术积分 398 (5446)
社区积分 226 (2530)
注册日期 2006-11-10
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2007-7-12 15:46 
Re: sql实现当月日历



QUOTE:
最初由 wngsheng 发布

select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
(select case when d=1 then dd end su,
       case when d=2 then dd end mo,
       case when d=3 then dd end tu,
       case when d=4 then dd end we,
       case when d=5 then dd end th,
       case when d=6 then dd end fr,
       case when d=7 then dd end sa,
       d,w,iw
from(
select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
(select trunc(sysdate,'month')+level-1 dates from dual
connect by rownum<last_day(sysdate)-trunc(sysdate,'month')
)
)
)
group by iw
order by iw;


环境:oracle 10g


代码格式缩进一下,看看清楚都好啊



__________________
继续顶红
只看该作者    顶部
离线 goodhawk
因为专注,所以专业


来自 上海
精华贴数 1
个人空间 0
技术积分 2267 (790)
社区积分 5 (17357)
注册日期 2004-10-5
论坛徽章:9
授权会员生肖徽章2007版:猪2009新春纪念徽章生肖徽章2007版:龙生肖徽章2007版:鸡ITPUB新首页上线纪念徽章
      

发表于 2007-7-12 17:27 
非常好。以前也想写,没写出来。

稍微纠正一下。 最后那个要 + 1
LAST_DAY (SYSDATE)- TRUNC (SYSDATE, 'month') + 1


__________________
真,善,美

*nix , Oracle,Oracle ERP (Fin),Php
blog: http://www.xiaobaicai.com
Tech:  http://www.appsboss.com
只看该作者    顶部
离线 kso
Just do it!


精华贴数 0
个人空间 0
技术积分 2518 (701)
社区积分 118 (3600)
注册日期 2005-5-6
论坛徽章:24
ITPUB元老红孩儿生肖徽章2007版:牛   
      

发表于 2007-7-12 17:33 
9i下也适用..


__________________
执子之手,与子偕老。
只看该作者    顶部
离线 pqxpqx
一般会员



精华贴数 0
个人空间 0
技术积分 260 (8252)
社区积分 0 (957453)
注册日期 2006-5-22
论坛徽章:0
      
      

发表于 2007-7-12 17:36 
创意不错,楼主真牛。


只看该作者    顶部
离线 wangfans


精华贴数 4
个人空间 20
技术积分 11520 (120)
社区积分 12586 (142)
注册日期 2006-11-29
论坛徽章:115
现任管理团队成员金牌徽章Heart of PUBNBA季后赛大富翁欧洲冠军杯纪念徽章季节之章:夏
NBA常规赛纪念章NBA之星季节之章:春ITPUB北京2009年会纪念徽章季节之章:冬BLOG每周发帖之星

发表于 2007-7-12 17:58 
牛尹~~~~


__________________
-------------------------------------------------
Life is always like this !
-------------------------------------------------
MSN: wangfans@163.com
-------------------------------------------------
只看该作者    顶部
离线 sudan521
初级会员



精华贴数 0
个人空间 0
技术积分 4 (157527)
社区积分 0 (191531)
注册日期 2004-10-21
论坛徽章:0
      
      

发表于 2007-7-12 18:14 
2007年8月 9月显示问题

select max(su) su,max(mo) mo,max(tu) tu,max(we) we,max(th) th,max(fr) fr,max(sa) sa from
(select case when d=1 then dd end su,
case when d=2 then dd end mo,
case when d=3 then dd end tu,
case when d=4 then dd end we,
case when d=5 then dd end th,
case when d=6 then dd end fr,
case when d=7 then dd end sa,
d,w
from(
select dates,to_char(dates,'dd') dd,to_number(to_char(dates,'d')) d,to_char(dates,'w') w,to_char(dates+1,'iw') iw from
(select trunc(sysdate,'month')+level-1 dates from dual
connect by rownum<last_day(sysdate)-trunc(sysdate,'month')+1
)
)
)
group by w
order by w;

//8月
SU MO TU WE TH FR SA
-- -- -- -- -- -- --
05 06 07 01 02 03 04
12 13 14 08 09 10 11
19 20 21 15 16 17 18
26 27 28 22 23 24 25
          29 30 31

//9月

SU MO TU WE TH FR SA
-- -- -- -- -- -- --
02 03 04 05 06 07 01
09 10 11 12 13 14 08
16 17 18 19 20 21 15
23 24 25 26 27 28 22
30                          29


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰网域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:060528号 联系我们 法律顾问