Chinaunix首页 | 论坛 | 博客
  • 博客访问: 388826
  • 博文数量: 166
  • 博客积分: 1972
  • 博客等级: 上尉
  • 技术积分: 1845
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-19 21:16
文章分类

全部博文(166)

文章存档

2013年(7)

2010年(159)

分类:

2010-10-12 13:51:40

本为是我的同事陈为的作品:

 

该功能可用于统计报表中要求做按日、按月、按季的统计:

1、执行以下SQL语句:

Sql代码
  1. select distinct(to_char(dt,'yyyy-MM-dd')) tjrq from ( select to_date('2008-05-01''yyyy-MM-dd')+rownum-1 dt from dual connect by rownum<=to_date('2008-09-20''yyyy-MM-dd')-to_date('2008-05-01''yyyy-MM-dd') + 1)   

 

该语句可获取2008-05-012008-09-20段内的所有日期;

 

2、将以上语句中的distinct(to_char(dt,'yyyy-MM-dd'))分别改为distinct(to_char(dt,'yyyy-MM'))以及distinct(to_char(dt,'yyyy-q'))则可显示该段日期内的所有月份以及所有季度;

 

3、以上功能无法实现对周的处理,需另行处理。

 

知识点解析:

1distinctdistinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。(注:distinct必须放在开头)

 

2connect by递归查询语句,对于树非常有用。

阅读(430) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~