读书人

怎么获取同一个表中不同类型的最新值

发布时间: 2012-02-08 19:52:21 作者: rapoo

如何获取同一个表中不同类型的最新值
假如有一个表的结构和数据是:
CODE TRAN_DATE AMOUNT
TTT 2010-10-12 1000
TTT 2010-12-31 3000
CCC 2010-07-01 500
CCC 2011-01-31 4000



我期望能查出来的值是
CCC 2011-01-31 4000
TTT 2010-12-31 3000

这种值, 我的SQL应该怎么写,有一条SQL能满足我的需求么?

[解决办法]
select * from tt a whre not exists(select 1 from tt where a.CODE=cdoe and a.TRAN_DATE<TRAN_DATE)
[解决办法]

SQL code
select * from table A where not exists(    select 1 from table B where a.CODE = B.CODE and A.TRAN_DATE < B.TRAN_DATE)select A.* from table A,     (select CODE, max(TRAN_DATE) as TRAN_DATE from table group by CODE) Bwhere A.CODE = B.CODE  and A.TRAN_DATE = B.TRAN_DATE
[解决办法]
加时间段:

SQL code
select A.* from table A,     (select CODE, max(TRAN_DATE) as TRAN_DATE from table      where TRAN_DATE > ? and TRAN_DATE < ?      group by CODE     ) Bwhere A.CODE = B.CODE  and A.TRAN_DATE = B.TRAN_DATE 

读书人网 >IBM DB2

热点推荐