日期:2014-05-17  浏览次数:20857 次

挺复杂的sql,求个思路
求个思路——
问题描述:查询某日期下(),某用户的余额,要求:如果此用户今天没有,则查昨天的,昨天没有再查前天的。。。
头大

------解决方案--------------------
对不起,没看清楚问题,不好意思
select t1.* from table t1 ,(select name , max(time) max_t from table where time <='XXX' group by name )t2 where t1.name =t2.name and t1.time =t2.max_t
------解决方案--------------------
测试数据:
SQL code

CREATE TABLE T7
(
    NAME VARCHAR(4),
    MyTime DATE,
    Money NUMBER(4)
);
INSERT INTO T7 VALUES('a', '17-11月-2011', 1);
INSERT INTO T7 VALUES('a', '18-11月-2011', 2);
INSERT INTO T7 VALUES('a', '16-11月-2011', 5);
INSERT INTO T7 VALUES('a', '13-11月-2011', 7);
INSERT INTO T7 VALUES('b', '11-11月-2011', 10);
INSERT INTO T7 VALUES('b', '20-11月-2011', 9);
INSERT INTO T7 VALUES('c', '16-11月-2011', 5);
INSERT INTO T7 VALUES('c', '14-11月-2011', 3);