select com case when

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Roald
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Sex, 29 Ago 2008 2:05 pm
Localização: Araras - SP

Montei a query abaixo e necessito colocar os valores do mês em colunas, só que quando uso o case when ele zera os valores da soma, se uso sem o case when ele pega os valores corretos, alguém poderia me dar uma dica

select substr(a.rd_datarq,1,4) ano, substr(rd_datarq,5,2) mês, rd_pd, rd_mat, rd_cc,

case when substr(rd_datarq,1,4)='01' then
(nvl(sum(decode(rd_datarq,'01',rd_valor)),rd_valor) )
end janeiro

from srd010 a
where a.d_e_l_e_t_=' '
and a.rd_datarq > '200713'
and a.rd_pd between '001' and '700'
group by substr(a.rd_datarq,1,4), rd_mat, rd_cc,rd_valor, substr(a.rd_datarq,5,2), rd_pd
order by rd_mat, rd_cc, substr(a.rd_datarq,5,2), rd_pd
rodfbar
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 241
Registrado em: Ter, 09 Out 2007 11:15 am
Localização: Batatais - SP

cara não é porque você usou o decode sem o substr

no case você usou: substr(rd_datarq,1,4)='01'

no decode: decode(rd_datarq,'01'

se você usar o case não precisa colocar decode nenhum... manda ver um sum no valor direto...

tenta ai..

abrçs
Roald
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Sex, 29 Ago 2008 2:05 pm
Localização: Araras - SP

Obrigado, vou testar
Responder
  • Informação
  • Quem está online

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