Sybase获得了记录组的最后记录

时间:2013-03-07 20:24:33

标签: sql sybase-asa

我有一张这样的表

ID REF状态日期

1 150 P 10/01/2010
2 150 P 11/01/2010
3 150 P 12/01/2010
4 151 P 10/01/2010
5 151c的NULL
6 152 P 11/01/2010
7 152 P 12/01/2010
8 152℃NULL

我想要的是检索状态等于 C 的所有记录和(对于那些状态为 P 的记录)根据列日期。

例如:

ID REF状态日期

3 150 P 12/01/2010
5 151c的NULL
8 152℃NULL

到目前为止,我已经尝试过subquerys,但是根据约会,我没有最后的记录。

我使用的是Sybase 8.0.2.4542。非常感谢你们!

1 个答案:

答案 0 :(得分:1)

尝试使用解决方案:

select id, ref, status, max(date)
from table 
where status = 'P'
group by id, ref, status, date
union all
select id, ref, status, date
from table 
where status = 'C'

一个查询:

select *from 
(select id, ref, status, max(date)
from table 
where status = 'P'
group by id, ref, status, date
union all
select id, ref, status, date
from table 
where status = 'C') RES