Jump to content
ronimarcos.silva

Totalizando colunas - Débito/Crédito

Recommended Posts

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

 

cta_deb_cred.png

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

 

ex_cta_deb_cred.png

Share this post


Link to post
Share on other sites

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.CtaCre

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Ygor Guedes
      Boa tarde meu pessoal. Preciso da ajuda de vocês em uma consulta baseada em Inner Join + Group By. Irei deixar as tabelas e a consulta que eu tenho, para melhor visualização:
       
      Consulta: 
      SELECT tab_garagens.onibus_ponto, tab_garagens.onibus_prefixo, data FROM pontos INNER JOIN tab_garagens ON pontos.onibus_ponto = tab_garagens.onibus_ponto Tabela pontos:
      | onibus_ponto |                data                |
      |           10           |  2019-06-03 12:00:00 |
      |           10           |  2019-06-03 12:10:00 |
      |           44           |  2019-06-03 12:00:00 |
       
      Tabela tab_garagens:
      | onibus_ponto |  onibus_prefixo  |
      |           10           |      DE700            |
      |           44           |      GL030            |
       
      A minha consulta está trazendo a informação mais antiga da data; o que eu preciso é tipo um ORDER BY com data mais recente, onde eu pego a data mais atual do registro agrupado na coluna 'onibus_ponto'.
       
      Eu gostaria que saísse assim: 
       
      | onibus_ponto |  onibus_prefixo |             data                  |
      |        10              |       DE700          | 2019-06-03 12:10:00 |
      |        44              |       GL030          | 2019-06-03 12:00:00 |
       
      Se puderem me ajudar, fico agradecido
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          1          60.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            1          45.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   1          50.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             1          55.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              1          35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                                                      Bacon Cheddar                          1           60.00
                                                                                                                                                      Chicken Club Sandwich           1            45.00
      26    46        15/05/2019 13:57:25         Dinheiro                  Pendente                           Philly Cheese Steak                   1            50.00
                                                                                                                                                      Smoke House                             1            55.00
                                                                                                                                                      Stream Miller                              1            35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      Alguem pode me ajudar, qual seria a melhor forma de fazer ?

      Essa tabela é gerada com um while no php entao se alguem saber uma outra maneira de montar isso aceito dicas.
       
      php: 
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      echo "<tr role='row' class='odd'>";
                                                      echo "<td class='sorting_1'>" .$resultado['CodigoComanda']. "</td>";
                                                      echo "<td>" .$resultado['Nome']."</td>";
                                                      echo "<td>" .$resultado['Quantidade']."</td>";
                                                      echo "<td>" .$resultado['Preco']."</td>";
                                                      echo "<td>" .$resultado['Metodos']."</td>";
                                                      echo "<td>" .$resultado['DataPedido']."</td>";
                                                      echo "<td>" .$resultado['Situacao']."</td>";
      echo "</tr>";
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      vlw pessoal
       
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            145.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   150.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                 46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
                                                                                                                                                      Chicken Club Sandwich            145.00
                                                                                                                                                      Philly Cheese Steak                   150.00
       Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
    • By Anderson Campos da Silva
      Olá,
       
      Estou com um problema, que para alguns pode ser simples, é o seguinte:
       
      Tenho 2 tabela relacionadas, MODELO e EQUIPAMENTO
       
      TABELA MODELO
      idModelo (INT) - chave primária  
      txModelo (VARCHAR)
       
      TABELA EQUIPAMENTO 
      idEquipamento (INT) - chave primária   
      patrimonio (VARCHAR)
      situacao (VARCHAR)
      idModelo (INT) - Chave estrangeira
       
      O campo situação pode ser preenchido apenas apenas com PRODUÇÃO OU ESTOQUE.
       
      Enfim, preciso de um SELECT que retorne as seguintes colunas txModelo, quantidade de equipamentos por modelo, quantidade de equipamentos com PRODUÇÃO, e quantidade de equipamentos com ESTOQUE, exemplo:
       
      txModelo | total | produção | estoque
      CISCO           7            4                  3
      HP                15          10                 5
      DELL            10           2                   8
       
      Desde já agradeço
    • By Cesar Masserati Procopio
      Boa Tarde Pessoal,
       
      Estou enviando duas Imagens para ajudar a ilustrar o que estou tentando fazer.
       
      Seguinte estou batendo a minha cabeça com isso e preciso de uma luz para resolver, por favor. 

      Estou recriando o WhatsApp Web para fins de aprendizagem, estou tentando fazer uma QUERY que me retorne a lista das pessoas que estou conversando, e também a Última Mensagem da conversa que tive com a pessoa.
      EXEMPLO: 
      Retornar a lista das Pessoas que conversam com o Cesar
      Neste caso teria que me retornar a lista abaixo:
      idAmigo NomeAmigo UltimaMsg     DataMsg 8779 Adelita Pereira Machado Couto Msg CINCO - Cesar enviou para Adelita  05/07/2018 17:22 7669 Hellen Sabrina de Brito Msg TRES - Hellen enviou para Cesar  05/07/2018 12:31 63 Sandro Batista Dos Santos Msg UM - Cesar enviou para Sandro 05/07/2018 17:22 1545 Gino Cezar dos Santos Msg UM - Gino enviou para Cesar 05/07/2018 17:20
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.