原来的表结构:月份    num     
200701   1     
200702   2

200812   12现在想增加一列allnum,变成:
月份    num      allnum
200701   1        12
200702   2        13

200812   12        50allnum是往前推12个月到这个月的累计值,不知道语句怎么写?

解决方案 »

  1.   

    你这allnum怎么算出来的?
    200701   1        12 
    这个12怎么算出来?
      

  2.   

    如果如你所说的allnum是往前推12个月到这个月的累计值
    假设你要显示出200701-200812的数据,则取的数据要从200601-200812
    最后显示是200701-200812的数据,即200601-200612的数据不显示,否则的话200701-200712的值都是不准的
    select aa.*
    from
    (
    select  a.month,a.num ,
    sum(a.num) over ( order by a.month rows between 12 PRECEDING AND 0 FOLLOWING) allnum
    from table a 
    where a.month >='200601'
    and a.month<='200812') aa
    where aa.month>='200701'