如何获取同一个表中不同类型的最新值
假如有一个表的结构和数据是:
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