部门 数据A 数据B 上传时间
部门1 1 2 2009-01
部门1 1 2 2009-02
部门1 1 2 2009-03
部门2 1 2 2009-01
部门2 1 2 2009-02
部门2 1 2 2009-03
部门3 1 2 2009-01
部门3 1 2 2009-02
我想查询得到:
部门1 1 2 2009-03
部门1 2 2 2009-03
部门1 3 2 2009-02
也就是每个部门最后一个月上传的数据
小弟没有想到好的方法,请兄弟姐妹们帮帮,谢谢了
部门1 1 2 2009-01
部门1 1 2 2009-02
部门1 1 2 2009-03
部门2 1 2 2009-01
部门2 1 2 2009-02
部门2 1 2 2009-03
部门3 1 2 2009-01
部门3 1 2 2009-02
我想查询得到:
部门1 1 2 2009-03
部门1 2 2 2009-03
部门1 3 2 2009-02
也就是每个部门最后一个月上传的数据
小弟没有想到好的方法,请兄弟姐妹们帮帮,谢谢了
(
select 部门,max(上传时间) from 表 group by 部门
)
不知道可不可以
from
(select rownum rn,t.* from tb t)a,
(select 部门,max(rn) rn
from
(select rownum rn,t.* from tb t)
group by 部门
)b
where a.部门=b.部门 and a.rn=b.rn
部门2 1 2 2009-03
部门3 1 2 2009-02
看了你的需求,你应该是要这样一个结果吧?还是要用ROW_NUMBER()...select 部门, 数据A, 数据B, 上传时间 from
(SELECT ROW_NUMBER()over(partition by 部门 order by 上传时间 desc ) as rn,a.* from yourtable a)
where rn=1
(select bm,max(accept_time) from lim_table_t
group by bm
)这个可以,已经试过了。简单易懂,谢谢
(select bm,max(accept_time) from lim_table_t
group by bm
) 这个好理解些,其他都看不董