Boa tarde pessoal da lista. Estou querendo transformar as linhas de um
relatório em colunas. Antes usava cursores e uma tabela auxiliar pra fazer
isso. Tempos atrás ouvi falar dessa função Pivot e agora estou tentando
usar.

Criei a seguinte consulta

SELECT   *
FROM    (SELECT   A.CUS_MES,
                  A.CUS_PRO,
                  A.CUS_QTF
         FROM     SGI5_TAB_CUS_RET_FAT A
         WHERE    A.CUS_MES BETWEEN &ANOMES1 AND &ANOMES2)
PIVOT   (
         SUM(CUS_QTF)
         FOR CUS_MES IN ('201801','201802','201803')
         )

É uma totalização de faturamento por mês. O problema é que na função FOR do
pivot (pelo que andei lendo) preciso saber quais as previamente quais
colunas estarão no agrupamento (no caso do exemplo
'201801','201802','201803') coisa que nao sei, pois o usuário poderá
selecionar o período de meses que quiser.
Existe alguma forma de contornar essa limitação na função Pivot?

Obrigado pela atenção de todos.

Em tempo, tentei substituir '201801','201802','201803' por ANY, como vi em
alguns artigos, mas nesse meu caso gera o erro ORA-00936 missing expression


Emerson Sanches
Analista de Sistemas
  • [oracle_br] Função P... Emerson Sanches emerson.sanc...@gmail.com [oracle_br]

Responder a