如图所示,1. Oracle数据库中存在着上图最最左边色块所显示的数据,
2. 一个group中有成对出现的start和end标记,
3. subtotal列所计算的是start和end标记间的value总和,
4. subtotal经过方法shape()的某种变形,变成了后一列的值,
5. total列是依据group值的不同分组对shape(subtotal)列加总获得。求一种思路,如何从最左边的色块展示的数据计算出最后一列的total值。
万谢!

解决方案 »

  1.   

    必须得有一个字段能够识别出   group start_flag end_flag 否则不好搞,oracle不像EXCEL是带序列有顺序的.你的插入顺序跟实际顺序可能不一致.
      

  2.   

    你能确保你从数据库查询出的数据start--end刚好成对吗?必须有一个排序字段吧?
    添加一列,把每对start--end都用一个值区分:
    比如:
    1  start       1
    1              1
    1        end   1
    1  start       2
    1              2
    1              2
    1        end   2
    然后就好办了,分组求和。
      

  3.   


    1 start      1
    1            1
    1       end  1
    1 start      2
    1            2
    1            2
    1       end  2
      

  4.   

    1 必须找一个排序的,数据库不保证你第一条被插入的会被第一个查询出来2 只有左面无解,鬼才知道你那个function怎么算出来值,没有function的具体算法,怎么算最右
      

  5.   

    需要先提供function_shape算法。