DECODE - ORACLE - Selecionar um determinado campo - Complicado

13/05/2010

0

Boa Tarde Pessoal TO desenvolvendo um plano de contas em oracle, o´problema é que nao consigo pedir pra ele subtrair o valor quando é debito (tabela clanca) e somar quando é credito....
O script segue abaixo, se alguem puder me ajudar...
Seria esse campo L.Valor, tentei colocar um case junto, dizendo que se campo credito fosse diferente de nulo pra ele somar, se o campo debito for diferente de nulo pra ele subtrair... mais nao funcionou.
Obs: Campo Credito e Debito estao em uma tabela chamada clanca, ela tem a seguinte estrutura.
data   credito     debito     valor como eu sei quando é debito ou credito? Quando o campo credito ou debito esta preenchido... exemplo:
data      credito     debito     valor
10/09     null         123321    100,00      -- nesse caso é debito
11/08    23454       null         98.88        -- nesse caso é credito Select
L.Credito As "Contas"
, Sum(Decode(To_Char(L.Data, 'mm'), '01' ,Nvl(L.Valor,0) ) )-S.Valor Janeiro
, Sum(Decode(To_Char(L.Data, 'mm'), '02' ,Nvl(L.Valor,0) ) )-S.Valor Fevereiro
, Sum(Decode(To_Char(L.Data, 'mm'), '03' ,Nvl(L.Valor,0) ) )-S.Valor Março
, Sum(Decode(To_Char(L.Data, 'mm'), '04' ,Nvl(L.Valor,0) ) )-S.Valor Abril
, Sum(Decode(To_Char(L.Data, 'mm'), '05' ,Nvl(L.Valor,0) ) )-S.Valor Maio
, Sum(Decode(To_Char(L.Data, 'mm'), '06' ,Nvl(L.Valor,0) ) )-S.Valor Junho
, Sum(Decode(To_Char(L.Data, 'mm'), '07' ,Nvl(L.Valor,0) ) )-S.Valor Julho
, Sum(Decode(To_Char(L.Data, 'mm'), '08' ,Nvl(L.Valor,0) ) )-S.Valor Agosto
, Sum(Decode(To_Char(L.Data, 'mm'), '09' ,Nvl(L.Valor,0) ) )-S.Valor Setembro
, Sum(Decode(To_Char(L.Data, 'mm'), '10' ,Nvl(L.Valor,0) ) )-S.Valor Outubro
, Sum(Decode(To_Char(L.Data, 'mm'), '11' ,Nvl(L.Valor,0) ) )-S.Valor Novembro
, Sum(Decode(To_Char(L.Data, 'mm'), '12' ,Nvl(L.Valor,0) ) )-S.Valor Dezembro
, S.Valor
From Clanca L Join Cconta C
On L.Codcoligada = C.Codcoligada
And L.credito = C.Codconta
Join Csdant S
On S.Codcoligada = C.Codcoligada
And S.Codconta = C.Codconta
And Substr(L.Credito,1,1) = '1'
And To_Char(L.Data,'yy') = '09'
GROUP BY L.Credito, S.Valor
order by L.credito se alguem puder me ajudar, agradeco muito
Marcio Santana

Marcio Santana

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar