正在做一个报表统计问题,数据库为Oracle9,
数据格式为 日期 数据1 数据2 数据3 部门
2007-1-1 10:00 xxx xxx xxx A
2007-1-1 10:20 xxx xxx xxx B
2007-1-1 10:40 xxx xxx xxx C
2007-1-1 11:00 xxx xxx xxx D
2007-1-1 11:20 xxx xxx xxx A
2007-1-1 11:40 xxx xxx xxx A
2007-1-1 12:00 xxx xxx xxx A
2007-1-1 12:20 xxx xxx xxx A
2007-1-1 12:40 xxx xxx xxx A
.
.
.
2007-1-2 9:00 xxx xxx xxx A
2007-1-2 10:00 xxx xxx xxx A
2007-1-2 10:20 xxx xxx xxx A
2007-1-2 10:40 xxx xxx xxx A
.
.
.
2007-1-3 10:00 xxx xxx xxx A
2007-1-3 10:20 xxx xxx xxx A
2007-1-3 10:40 xxx xxx xxx A
其中每天数据量为250条左右,现在需要做月报表,
请教如何将每天的最后一条取出?
数据格式为 日期 数据1 数据2 数据3 部门
2007-1-1 10:00 xxx xxx xxx A
2007-1-1 10:20 xxx xxx xxx B
2007-1-1 10:40 xxx xxx xxx C
2007-1-1 11:00 xxx xxx xxx D
2007-1-1 11:20 xxx xxx xxx A
2007-1-1 11:40 xxx xxx xxx A
2007-1-1 12:00 xxx xxx xxx A
2007-1-1 12:20 xxx xxx xxx A
2007-1-1 12:40 xxx xxx xxx A
.
.
.
2007-1-2 9:00 xxx xxx xxx A
2007-1-2 10:00 xxx xxx xxx A
2007-1-2 10:20 xxx xxx xxx A
2007-1-2 10:40 xxx xxx xxx A
.
.
.
2007-1-3 10:00 xxx xxx xxx A
2007-1-3 10:20 xxx xxx xxx A
2007-1-3 10:40 xxx xxx xxx A
其中每天数据量为250条左右,现在需要做月报表,
请教如何将每天的最后一条取出?
from table1
where time >=每天统计的开始时间 and time <=每天统计的结束时间
order by 统计时间 desc;
将查询结果按统计时间的降序排列,第一条记录就是每天统计的最后一条记录.
(select * from 表 where to_char(日期,'yyyy-mm-dd')=to_char(a.日期,'yyyy-mm-dd')
and 日期>a.日期)
FROM tabname a
WHERE EXISTS (SELECT 1
FROM (SELECT MAX (date_) date_
FROM tabname
GROUP BY TO_CHAR (date_, 'yyyymmdd')) taba
WHERE a.date_ = taba.date_)
SELECT a.*
FROM tabname a JOIN (SELECT MAX (date_) date_
FROM tabname
GROUP BY TO_CHAR (date_, 'yyyymmdd')) taba ON a.date_ =
taba.date_
偶希望是能够把当月每天最后一天都搜索出来。to WangZWang(先来):没看明白,帮忙解释一下
且不存在一个日期>a.日期
非常感谢,测试已经成功,散分