ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

select sum postgreSQL

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Mar 08, 2017 2:34 pm    Assunto: select sum postgreSQL Responder com Citação

Preciso fazer um select que traz apenas um resultado final

Montei assim
Código:
SELECT
 OPERACAO,
 CASE WHEN OPERACAO = 'I' THEN
    SUM(VALOR)
  ELSE
    SUM(VALOR) * -1
  END AS VALOR
FROM LANCAMENTOS_EMPRESAS
WHERE ID_CONTA = '1000000000'
GROUP BY OPERACAO


Mais não serve porque ai divide o sum entre duas operações.

Obrigado.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qua Mar 08, 2017 2:51 pm    Assunto: Responder com Citação

Tenta assim:
Código:
SELECT OPERACAO,
       SUM(VALOR) * CASE WHEN OPERACAO = 'I'
                         THEN 1
                         ELSE -1
                     END AS VALOR
  FROM LANCAMENTOS_EMPRESAS
 WHERE ID_CONTA = '1000000000'
 GROUP BY OPERACAO
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Mar 08, 2017 2:53 pm    Assunto: Responder com Citação

Boa tarde,

Experimente dessa forma para ver se é obtido o resultado esperado:

Código:
SELECT
 SUM(VALOR * CASE WHEN OPERACAO = 'I' THEN 1 ELSE -1 END) AS VALOR
FROM LANCAMENTOS_EMPRESAS
WHERE ID_CONTA = '1000000000'


Espero que ajude


Editado pela última vez por imex em Dom Out 01, 2023 4:08 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Mar 08, 2017 2:57 pm    Assunto: Responder com Citação

testei as duas formas de select

Código:
SELECT OPERACAO,
       SUM(VALOR) * CASE WHEN OPERACAO = 'I'
                         THEN 1
                         ELSE -1
                     END AS VALOR
  FROM LANCAMENTOS_EMPRESAS
 WHERE ID_CONTA = '1000000000'
 GROUP BY OPERACAO


Código:
 SELECT
   SUM(VALOR * CASE WHEN OPERACAO = 'I' THEN 1 ELSE -1 END) AS VALOR
FROM LANCAMENTOS_EMPRESAS
WHERE ID_CONTA = '1000000000'


A primeira forma do select não deu certo retorna igual a forma que fiz.
A segunda forma funcionou como preciso.

Obrigado pessoal.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB