billno amount
a     1     50
a     2     100
a     3     150
a     5     150
a     6     140
a     9     200
b     10     250
怎样查询到下面的结果:
 start end sum(amount)
a     1     3   300
a     5     6   290
a     9     9   200
b     10    10   250
求高手指导!!!!!!

解决方案 »

  1.   

    -- billno amount
    with t as (
    select 'a' as , 1 as billno, 50 as amount from dual
    union all
    select 'a', 2, 100 from dual
    union all
    select 'a', 3, 150 from dual
    union all
    select 'a', 5, 150 from dual
    union all
    select 'a', 6, 140 from dual
    union all
    select 'a', 9, 200 from dual
    union all
    select 'b', 10, 250 from dual
    )
    select ,min(billno),max(billno),sum(amount) from (
    select ,billno,amount,(billno - rownum) as groupid  from t
    ) group by ,groupid
    order by MARK MIN(BILLNO)            MAX(BILLNO)            SUM(AMOUNT)            
    ---- ---------------------- ---------------------- ---------------------- 
    a    1                      3                      300                    
    a    5                      6                      290                    
    a    9                      9                      200                    
    b    10                     10                     250      
      

  2.   

    (billno - rownum) as groupid这一段是什么意思不懂,求教!!!!1