WITH T AS
(
SELECT '001' ORDER_CODE, 30000 ACTUAL, 10000 "201309", 10000 "201310", 10000 "201311" FROM DUAL UNION ALL
SELECT '002' ORDER_CODE, 60000 ACTUAL, 20000 "201309", 20000 "201310", 20000 "201311" FROM DUAL
)
SELECT * FROM T
/*
说明:字段 ORDER_CODE, ACTUAL 这两个字段是固定的,后面的字段不固定,是按月份增加的
要实现的查询结果:根据月份字段除以ACTUAL字段
如月份字段201309 呢就是10000/30000
201310 呢就是(10000+10000)/30000
算后一个月份要把前面的月份累加起来再除以ACTUAL
SELECT ORDER_CODE, "201309"/ACTUAL AS "201309", ("201309"+"201310")/ACTUAL AS "201310", ("201309"+"201310"+"201311")/ACTUAL AS "201311" FROM T
最大的问题就是月份字段不定
*/oracleselect
(
SELECT '001' ORDER_CODE, 30000 ACTUAL, 10000 "201309", 10000 "201310", 10000 "201311" FROM DUAL UNION ALL
SELECT '002' ORDER_CODE, 60000 ACTUAL, 20000 "201309", 20000 "201310", 20000 "201311" FROM DUAL
)
SELECT * FROM T
/*
说明:字段 ORDER_CODE, ACTUAL 这两个字段是固定的,后面的字段不固定,是按月份增加的
要实现的查询结果:根据月份字段除以ACTUAL字段
如月份字段201309 呢就是10000/30000
201310 呢就是(10000+10000)/30000
算后一个月份要把前面的月份累加起来再除以ACTUAL
SELECT ORDER_CODE, "201309"/ACTUAL AS "201309", ("201309"+"201310")/ACTUAL AS "201310", ("201309"+"201310"+"201311")/ACTUAL AS "201311" FROM T
最大的问题就是月份字段不定
*/oracleselect
--那你这个结果看来也是通过处理得到的。。可以从源sql入手。