+ -
当前位置:首页 → 问答吧 → sql查询语句,望指教

sql查询语句,望指教

时间:2011-11-07

来源:互联网

一张表dual,有日期字段(带时间),有其他数据字段,现在想求:最新时间的数据和上周同期的数据

也就是说展示最新的一条数据和上周同时间的一条数据,这样的sql该怎样写?

作者: fengxiao198711   发布时间: 2011-11-07

SQL code

select *
  from(select t.*,
              row_number()over(order by t.时间字段 desc) row_
         from dual t
        where to_char(时间子段,'day')=to_char(sysdate,'day'))
where row_ <= 2;


作者: BenChiM888   发布时间: 2011-11-07

select t1.* from dual t1, (select data,max(time) time from dual group by data)t2 where 
t1.data=t2.data and (t1.time=t2.time or t1.time=(t2.time-7))

作者: tx2730   发布时间: 2011-11-07

引用 1 楼 benchim888 的回复:
SQL code

select *
from(select t.*,
row_number()over(order by t.时间字段 desc) row_
from dual t
where to_char(时间子段,'day')=to_char(sysdate,'day'))
where row_ <= 2;
……
这样写会遇到一个问题,如果上周同时间没有数据,那么,上上周的数据就会被select出来了

作者: yinan9   发布时间: 2011-11-07

那如何解决呢?如果上周同时间没有数据,就让其空着即可!
引用 3 楼 yinan9 的回复:

引用 1 楼 benchim888 的回复:
SQL code

select *
from(select t.*,
row_number()over(order by t.时间字段 desc) row_
from dual t
where to_char(时间子段,'day')=to_char(sysdate,'day'))
where row_ <= 2;
……
这样写会……

作者: fengxiao198711   发布时间: 2011-11-07

引用 4 楼 fengxiao198711 的回复:
那如何解决呢?如果上周同时间没有数据,就让其空着即可!

引用 3 楼 yinan9 的回复:

引用 1 楼 benchim888 的回复:
SQL code

select *
from(select t.*,
row_number()over(order by t.时间字段 desc) row_
from dual t
where to_char(时间子段,'day')……
2楼 的应该可以的

作者: yinan9   发布时间: 2011-11-07