有关结果集行号的问题

zhaozheng821018 2010-01-24 03:39:00
我在做统计是需要按月份统计(非自然月,没个月的26号开始到次月的25号为一个月),如何去写sql,
下面是我写的半成品工程

select max(checkdate),min(p.checkdate),to_char(p.checkdate,'yyyy-mm'),sum(checkmeters),flag
from (
select a.checksheetid,a.checkdate,a.checkmeters,case when to_number(to_char(a.checkdate,'dd'))>=26 then 1 else 0 end flag
from chk_sfpchecksh a
where a.checkdate>to_date('2009-10-25','yyyy-mm-dd')
order by a.checkdate
) p
group by to_char(p.checkdate,'yyyy-mm'),flag



查询结果如下

<table width="295" border="0">
<tr>
<td>2009-10-31</td>
<td>2009-10-26</td>
<td>2009-10</td>
<td>103858.1</td>
<td>1</td>
</tr>
<tr>
<td>2009-11-25</td>
<td>2009-11-1</td>
<td>2009-11</td>
<td>362690.8</td>
<td>0</td>
</tr>
<tr>
<td>2009-11-30</td>
<td>2009-11-26</td>
<td>2009-11</td>
<td>63674</td>
<td>1</td>
</tr>
<tr>
<td>2009-12-25</td>
<td>2009-12-1</td>
<td>2009-12</td>
<td>321208.6</td>
<td>0</td>
</tr>
<tr>
<td>2009-12-31</td>
<td>2009-12-26</td>
<td>2009-12</td>
<td>97628.5</td>
<td>1</td>
</tr>
<tr>
<td>2010-1-24</td>
<td>2010-1-1</td>
<td>2010-01</td>
<td>368241.6</td>
<td>0</td>
</tr>
</table>

哪位指点一下啊
...全文
51 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2010-01-24
  • 打赏
  • 举报
回复
select max(checkdate),min(a.checkdate),to_char(add_months(a.checkdate-25,1),'yyyy-mm'),sum(checkmeters)
from chk_sfpchecksh a
where a.checkdate>to_date('2009-10-25','yyyy-mm-dd')
group by to_char(add_months(a.checkdate-25,1),'yyyy-mm')
order by 3;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧