一张表初始记录一百个帐户,每个帐户都有100元.某用户如果消费后,则向该表记录消费时间以及余额,如何打印出每个帐户每天的余额   . 
题目是这样的
我这样做应该没有错吧
select id 帐户,min(yue) 余额 from t_2 where sdate<sysdate-rownum group by id connect by rownum<=100
id为帐户
yue 为余额
sdate 为支出日期
create table T_2
(
       id number ,
       yue number,
       sdate date
);

解决方案 »

  1.   

    -- 给你个例子:
    SQL> SELECT * FROM TEST_NUM;        ID NDATE              NUM
    ---------- ----------- ----------
             2 1/1/2008           200
             2 1/4/2008           300
             3 1/8/2008           100
             3 1/10/2008          101
             4 1/15/2008          500
             4 1/18/2008          300
             2 1/10/2008          2507 rows selectedSQL> SELECT *
      2    FROM TEST_NUM T1
      3   WHERE NOT EXISTS (SELECT 1
      4                   FROM TEST_NUM T2
      5                  WHERE T1.ID = T2.ID
      6                    AND T1.NDATE < T2.NDATE);        ID NDATE              NUM
    ---------- ----------- ----------
             3 1/10/2008          101
             4 1/18/2008          300
             2 1/10/2008          250
      

  2.   

    看这个满足不?
    SQL> select * from t_2;        ID        YUE SDATE
    ---------- ---------- -----------
             2        100 2008-10-13
             2         90 2008-10-13
             2         80 2008-10-14
             2         70 2008-10-14
             2         65 2008-10-14
             2         43 2008-10-15
             2         23 2008-10-16
             1        100 2008-10-13
             1         90 2008-10-13
             1         80 2008-10-13
             1         78 2008-10-14
             1         67 2008-10-14
             1         50 2008-10-15
             1         30 2008-10-1714 rows selectedSQL> 
    SQL> select id, to_char(sdate, 'yyyy-mm-dd'), min(yue)
      2    from t_2
      3   group by id, to_char(sdate, 'yyyy-mm-dd')
      4   order by id
      5  ;        ID TO_CHAR(SDATE,'YYYY-MM-DD')   MIN(YUE)
    ---------- --------------------------- ----------
             1 2008-10-13                          80
             1 2008-10-14                          67
             1 2008-10-15                          50
             1 2008-10-17                          30
             2 2008-10-13                          90
             2 2008-10-14                          65
             2 2008-10-15                          43
             2 2008-10-16                          238 rows selected
      

  3.   

    Select a.* From t_2 a Where  Not Exists (Select * From t_2 b Where a.id=b.Id  And a.yue>b.yue)