Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, preciso de uma ajuda de vocês. Não tenho muita experiência em SQL, creio que para vocês será fácil. Estou usando o banco de dados Oracle 12C.
Supondo que tenho em meu banco 3 colunas, uma de conta de Débito, onde nesta coluna vai o código da conta de débito, uma de conta de Crédito, onde nesta coluna vai o código da conta de Crédito e uma de valor, que é informado o valor de cada lançamento a débito ou a crédito.
Quando o lançamento for a débito, o valor da conta de crédito é igual a Zero (0) e inverso quando o lançamento for a débito, ou seja, se uma conta está preenchida é porque a outra não tem lançamento. Até aí tudo bém, posso totalizar o valor por cada conta de débito ou de crédito. Mas como faço se eu querer saber o total da conta de débito e o total da conta de crédito?
Veja abaixo um exemplo:
Select E640LCT.CtaDeb, E640LCT.CtaCre, sum(E210MVP.VLRMOV) as total
from E210Mvp, E644Les, E640Lct
where
E644Les.CodEmp = E640Lct.CodEmp and
E644Les.NumLct = E640Lct.NumLct and
E644Les.CodEmp = E210Mvp.CodEmp and
E644Les.CodPro = E210Mvp.CodPro and
E644Les.CodDer = E210Mvp.CodDer and
E644Les.CodDep = E210Mvp.CodDep and
E644Les.DatMov = E210Mvp.DatMov and
E644Les.SeqMov = E210Mvp.SeqMov and
E210Mvp.CodEmp = 100 and
E210Mvp.CodFil = 3 and
E640LCT.OriLct = 'EST' and
E640LCT.DatLct between '01/07/2019' and '31/07/2019'
group by E640LCT.CtaDeb, E640LCT.CtaCre

Não sei se entendi
Select E640LCT.CtaDeb, E640LCT.CtaCre, (E640LCT.CtaDeb - E640LCT.CtaCre) saldo , sum(E210MVP.VLRMOV) as total
from E210Mvp, E644Les, E640Lct ...
Acho que tem de tratar o sinal conforme a natureza da conta , credora ou devedora>
13 horas atrás, Motta disse:
Não sei se entendi
Select E640LCT.CtaDeb, E640LCT.CtaCre, (E640LCT.CtaDeb - E640LCT.CtaCre) saldo , sum(E210MVP.VLRMOV) as total
from E210Mvp, E644Les, E640Lct ...
Acho que tem de tratar o sinal conforme a natureza da conta , credora ou devedora
Obrigado pela resposta.
As colunas CtaDeb e CtaCre, não são introduzidos valores monetários e sim o código da conta reduzida de débito e de crédito, os
valores são somente na coluna VlrMov.
Não sei se entendeu.Não
Na conta de crédito e débito, vem o código da conta no plano de contas, tipo: água, luz, telefone, Receitas com vendas, etc.
Para cada conta dessas, eu tenho o valor em R$ referente a essa movimentação na coluna total.
As duas contas compartilham o campo total como campo de seus valores em reais. Esses valores não veem com valor negativo para conta de débito, tipo, com o sinal de menos na frente (-). Eles vem todos juntos, não tem um campo/flag que informa se a conta é de débito ou crédito, somente pelo próprio campo.
Estou tentando uma forma de totalizar os valores de débito e/ou valores de crédito, pois da forma como foi arquitetado ficou muito ruim para de descobrir, ao menos no meu pensamento.
Anexei uma imagem para explicar melhor, desde já agradeço.

Seria isto ?
Select E640LCT.CtaDeb CtaDeb,
' ' CtaCre,
sum(-1*E210MVP.VLRMOV) as total
from E210Mvp, E644Les, E640Lct
where
E644Les.CodEmp = E640Lct.CodEmp and
E644Les.NumLct = E640Lct.NumLct and
E644Les.CodEmp = E210Mvp.CodEmp and
E644Les.CodPro = E210Mvp.CodPro and
E644Les.CodDer = E210Mvp.CodDer and
E644Les.CodDep = E210Mvp.CodDep and
E644Les.DatMov = E210Mvp.DatMov and
E644Les.SeqMov = E210Mvp.SeqMov and
E210Mvp.CodEmp = 100 and
E210Mvp.CodFil = 3 and
E640LCT.OriLct = 'EST' and
E640LCT.DatLct between '01/07/2019' and '31/07/2019'
group by E640LCT.CtaDeb
union all
Select '' CtaDeb,
E640LCT.CtaCre CtaCre,
sum(E210MVP.VLRMOV) as total
from E210Mvp, E644Les, E640Lct
where
E644Les.CodEmp = E640Lct.CodEmp and
E644Les.NumLct = E640Lct.NumLct and
E644Les.CodEmp = E210Mvp.CodEmp and
E644Les.CodPro = E210Mvp.CodPro and
E644Les.CodDer = E210Mvp.CodDer and
E644Les.CodDep = E210Mvp.CodDep and
E644Les.DatMov = E210Mvp.DatMov and
E644Les.SeqMov = E210Mvp.SeqMov and
E210Mvp.CodEmp = 100 and
E210Mvp.CodFil = 3 and
E640LCT.OriLct = 'EST' and
E640LCT.DatLct between '01/07/2019' and '31/07/2019'
group by E640LCT.CtaCreObrigado pela resposta Motta.
O meu está dando erro ORA-01790: A expressão deve ter o mesmo tupo de dados da expressão correspondente.
Deve ser formatação, vou ver se acho a solução.
Obrigado.
Troque o ''' por null
Obrigado Motta.
Estou de licença, por isso não pude testar, mas creio que seja isso. Obrigado.
Quando aparece preenchido conta de débito e crédito no mesmo registro, vai o mesmo valor para ambos, então resumindo, neste caso somar os valores da coluna de débito e a de crédito, tipo:
Total Vlr Débito -- Vlr Total Crédito