title: Are there any trend line Function in PL SQL?
body: <p>I need a function to calculate a trend line. I have a query (part of the function):</p>
  
  <pre><code>select round(sum(nvl(vl_indice, vl_meta))/12, 2) from (
  SELECT 
    SUM (vl_indice) vl_indice, SUM (vl_meta) vl_meta
  FROM
    (SELECT cd_mes, vl_indice, NULL vl_meta, dt.id_tempo,
      fi.id_multi_empresa, fi.id_setor, fi.id_indice
    FROM dbadw.fa_indice fi , dbadw.di_tempo dt ,
      dbadw.di_multi_empresa dme , dbaportal.organizacao o ,
      dbadw.di_indice di
    WHERE fi.id_tempo        = dt.id_tempo
    AND DT.CD_MES BETWEEN TO_NUMBER(TO_CHAR(ADD_MONTHS(TO_DATE(TO_CHAR(PCD_MES),'YYYYMM'),- 11),'YYYYMM'))
                            AND PCD_MES
         AND DT.ANO = TO_NUMBER(TO_CHAR(TO_DATE(TO_CHAR(PCD_MES),'YYYYMM'),'YYYY'))
    AND fi.id_multi_empresa  = dme.id_multi_empresa
    AND dme.cd_multi_empresa = NVL(o.cd_multi_empresa_mv2000, o.cd_organizacao)
    AND o.cd_organizacao     = PCD_ORG
    AND fi.id_setor         IS NULL
    AND fi.id_indice         = di.id_indice
    AND di.cd_indice         = PCD_IVM
    UNION ALL
    SELECT cd_mes, NULL vl_indice, vl_meta, dt.id_tempo,
      fm.id_multi_empresa, fm.id_setor, fm.id_indice
    FROM dbadw.fa_meta_indice fm , dbadw.di_tempo dt ,
      dbadw.di_multi_empresa dme , dbaportal.organizacao o ,
      dbadw.di_indice di
    WHERE fm.id_tempo        = dt.id_tempo
    AND DT.ANO = TO_NUMBER(TO_CHAR(TO_DATE(TO_CHAR(PCD_MES),'YYYYMM'),'YYYY'))
    AND fm.id_multi_empresa  = dme.id_multi_empresa
    AND dme.cd_multi_empresa = NVL(o.cd_multi_empresa_mv2000, o.cd_organizacao)
    AND o.cd_organizacao     = PCD_ORG
    AND fm.id_setor         IS NULL
    AND fm.id_indice         = di.id_indice
    AND di.cd_indice         = PCD_IVM
    )
  GROUP BY cd_mes, id_tempo, id_multi_empresa, id_setor, id_indice
  ORDER BY cd_mes);
  </code></pre>
  
  <p>Where I tried to calculate the trend line on the first line, but is not correct. Please, Can anybody help me?</p>