Oracle 同比、定比、环比分析

SELECT curmonth "月份", ((curmonth_sum - lastyear_sum) / lastyear_sum * 100) "同比",

       ((curmonth_sum - lastmonth_sum) / lastmonth_sum * 100) "环比"

  FROM (SELECT   t.salarymonth curmonth, SUM (t.salary) curmonth_sum,

                 (SELECT SUM (t1.salary)

                    FROM d_month_salary t1

                   WHERE t1.salarymonth =

                            (   (SUBSTR (t.salarymonth, 1, 4) - 1)

                             || SUBSTR (t.salarymonth, -2)

                            )) lastyear_sum,

                 (SELECT SUM (t1.salary)

                    FROM d_month_salary t1

                   WHERE t1.salarymonth =

                            TO_CHAR

                               (ADD_MONTHS (TO_DATE (t.salarymonth, 'yyyymm'),

                                            -1

                                           ),

                                'yyyymm'

                               )) lastmonth_sum

            FROM d_month_salary t

        GROUP BY t.salarymonth)

猜你喜欢

转载自my.oschina.net/u/3800936/blog/1789548