有一张表, 数据如下
 ID | NAME |     PRICE |      time 
1      name1      100        2012/01/01 
2      name2      200        2012/01/02 
3      name3      800        2012/01/03 
查询理想结果
ID | NAME |     PRICE |      time          |  chajia
1      name1      100        2012/01/01   0
2      name2      200        2012/01/02   100
3      name3      800        2012/01/03    600

解决方案 »

  1.   

    tb 你的表……
    select tb.*,nvl(PRICE-prior PRICE,0) from tb start with id=1 connect by id = prior id+1
      

  2.   

    三个name不同 一个月数据应该不少吧? 还是按照每个name分组查询每月的差额?
      

  3.   

    --记录的第二条减去第一条的写法
    select id,name,price,time,lag(h.price)over(order by h.id)  as lastval
    from tableName h;
      

  4.   

    select id,name,price,time,nvl(price - lag(h.price)over(order by h.id),0) as lastval from tb h;select tb.*,nvl(PRICE-prior PRICE,0) from tb start with id=1 connect by id = prior id+1两者都可以。。