Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Boa tarde,
Preciso alterar as colunas a seguir para vertical pelo que pesquisei seria o pivot mais não estou sabendo utilizar poderia ajudar segue.
select decode(grouping(to_char(trunc(data,'MM'),'YYYYMMDD')),1,'TOTAL', min(to_char(trunc(data,'MM'),'MON/YYYY','NLS_DATE_LANGUAGE = PORTUGUESE'))) as coluna1,
sum ((
(case when 'n' in ('s','v') then
valor
else valoritem end) - (valordoitem))) as coluna 2
..........
no final estou usando.
rollup (to_char(trunc(data,'MM'),'YYYYMMDD'))
Muito obrigado.
Abraços
Motta,
então mas neste
pivot (
....
)
order by
Qual seria exatamente os critérios que devo colocar.
obg
Veja esteexemplo , o PIVOT tem de ter as colunas definidas.
Como no exemplo dos estados terá de passar as referências para formar as colunas e o totalizador.
outra saída e usar um case, algo como
select sum(case when to_char(data_venda,'yyyymm') = '201501' then valor_venda else 0 end) ref201501,
sum(case when to_char(data_venda,'yyyymm') = '201502' then valor_venda else 0 end) ref201502,
...
sum(case when to_char(data_venda,'yyyymm') = '201512' then valor_venda else 0 end) ref201512,
sum(valor_venda) tot
from vendas
where ..
Prefiro esta , até para montar o sql de forma dinamica
.