Dúvida com Pivot

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qui, 01 Mar 2018 2:47 pm

Boas senhores, apanhando para fazer um pivot.

Tenho o seguinte select:

select departamento,dt_dia,valor from tabela where mês = '01/2018'
resulta
dept data valor
dep1,01/01/2018,10
dep1,02/01/2018,5
dep4,01/01/2018,10

Gostaria de pivotear onde a data viraria coluna e o valor fosse o retorno desta coluna.
Preciso dos dias como coluna. Seque exemplo

Depto d1 d2
1 dep1 10 5
2 dep4 10 0
xprata
Localização: São Paulo - SP

Mensagemem Qui, 01 Mar 2018 3:07 pm

Olá xprata,

dá uma olhada no seguinte link (observando que seu banco 11 ou superior):
http://www.oracle.com/technetwork/pt/articles/sql/principais-caracteristicas-database-2108383-ptb.html

Se precisar, olha o tópico a seguir que informações úteis:
http://glufke.net/oracle/viewtopic.php?f=3&t=10571&p=41562#p41562
DanielNN
Localização: Fortaleza - CE

att,

Daniel N.N.

Mensagemem Qui, 01 Mar 2018 3:49 pm

Obrigado pelo retorno...as indicações ajudaram...
Agora como tenho que mostrar todos os dias, tive que fazer não a inclusão da query dia a dia, tanto na apresentação quanto no pivot

select xxx...d01,d02,d03....d031
....
pivot
max(valor)
for (dt) in (
'01/01/2018' d01,'02/01/2018'.....31/01/2018 d31...

Tem como fazer um loop para evitar a reescrita? e também tem o caso de mudar de mês...dai tenho mexer na query
Será q fui claro?
xprata
Localização: São Paulo - SP

Mensagemem Qui, 01 Mar 2018 4:05 pm

Cara,
Tenta fazer o pivot em cima do campo DIA. Mas na sua consulta você terá os campos mês e ano. Assim você só precisará escrever os 31 dias do mês.
De outra forma você acabará possuindo uma tabela com os 365 colunas para cada dia do ano. Fica inviável.

Código: Selecionar todos
select extract(day from sysdate) dia_x
     , to_char(sysdate, 'dd')    dia_char
     , sysdate
  from dual;


Agora se você PRECISAR que seja tudo dinâmico, sem precisar escrever dias e etc, veja o final do tópico citado anteriormente.
DanielNN
Localização: Fortaleza - CE

att,

Daniel N.N.

Mensagemem Sex, 02 Mar 2018 10:38 am

Obrigado...o que vai variar mesmo é o mês...vou fixar os dias
Vou fazer os testes com sua dica...
t+
xprata
Localização: São Paulo - SP



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes