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 Firebird não soma

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


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Sex Jul 28, 2017 3:45 pm    Assunto: Select Firebird não soma Responder com Citação

Pessoal, boa tarde!


Fiz o seguinte select com as informações que preciso


Código:

select distinct
rr.codigo as codigo,
rr.movsaida as movsaida,
rr.numero as codParcela,
rr.parcela,
rr.cliente as clientecodigo,
rr.indice as clientes,
rr.data as dtPagamento,
rr.vencimento  as vencimento,
sum(rr.valor) as valorpago
from creditocliente rr
where rr.cancelado = 0 and rr.numero <> 0
and rr.indice = 3854
and rr.movsaida = 32018
group by
rr.codigo,
rr.movsaida,
rr.numero,
rr.parcela,
rr.cliente,
rr.indice,
rr.data,
rr.vencimento
order by dtpagamento



ele retorna sem somar os valores... ja tentei .. alguem pode dar uma mão?

Obrigado



ps fiz o filtro de um so cliente, mas preciso de todos***
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: Sex Jul 28, 2017 3:59 pm    Assunto: Responder com Citação

Boa tarde,

Você precisa a princípio remover os campos Codigo e Data da query, pois eles possuem valores diferentes entre os registros e estão impedindo o agrupamento dos mesmos.

Espero que ajude


Editado pela última vez por imex em Seg Dez 04, 2023 11:21 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Sex Jul 28, 2017 4:25 pm    Assunto: Responder com Citação

imex escreveu:
Boa tarde,

Você precisa a princípio remover os campos Codigo e Data da query, pois eles possuem valores diferentes entre os registros e estão impedindo o agrupamento dos mesmos.

Espero que ajude



obrigado imex, ja havia feito isso ele soma, porém preciso dos campos... será que coloca o max(codigo) e max(data) sem agrupar ele retorna??? vou fazer o teste imex. obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Seg Jul 31, 2017 6:01 pm    Assunto: Responder com Citação

Pessoal, boa tarde!

Fiz o teste conforme me deram a ideia, funcionou em vários casos porem em alguns não.

Fiz assim

Código:

select distinct
-----max(rr.codigo) as codigo,
rr.movsaida as movsaida,
rr.numero as codParcela,
rr.parcela,
rr.cliente as clientecodigo,
rr.indice as clientes,
max(rr.data) as dtPagamento,
rr.vencimento  as vencimento,
sum(rr.valor) as valorpago
from creditocliente rr
where rr.cancelado = 0 and rr.numero <> 0
and rr.indice = 2033
--and rr.data = '07.07.2017'
group by
------rr.codigo,
rr.movsaida,
rr.numero,
rr.parcela,
rr.cliente,
rr.indice,
-------rr.data,
rr.vencimento
order by dtpagamento


ele ele retornou assim




ai filtrando o dtpagamento

dessa forma

Código:

select distinct
-----max(rr.codigo) as codigo,
rr.movsaida as movsaida,
rr.numero as codParcela,
rr.parcela,
rr.cliente as clientecodigo,
rr.indice as clientes,
max(rr.data) as dtPagamento,
rr.vencimento  as vencimento,
sum(rr.valor) as valorpago
from creditocliente rr
where rr.cancelado = 0 and rr.numero <> 0
and rr.indice = 2033
and rr.data = '07.07.2017'
group by
------rr.codigo,
rr.movsaida,
rr.numero,
rr.parcela,
rr.cliente,
rr.indice,
-------rr.data,
rr.vencimento
order by dtpagamento


Retorna certo, somando todos os registros





varios registros estão ok cerca de 70% os demais estão assim... alguem pode dar um help ai?


Valeuu
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: Seg Jul 31, 2017 8:49 pm    Assunto: Responder com Citação

Qual versão do Firebird você está utilizando?
Você precisa de quais campos no resultado? Você pode postar um exemplo de como gostaria que ficasse o resultado?
Como disse no início, para que os registros sejam agrupados é necessário, a princípio, que os campos que não estão dentro de funções de agregação (ex: min, max, sum, avg, etc) possuam o mesmo valor. Isso após o Select. No Where pode ser utilizado qualquer campo.
Pelo que vi no último print que você postou os campos que possuem o mesmo valor são o rr.cliente, rr.indice e talvez o rr.data.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Ter Ago 01, 2017 10:31 am    Assunto: Responder com Citação

imex escreveu:
Qual versão do Firebird você está utilizando?
Você precisa de quais campos no resultado? Você pode postar um exemplo de como gostaria que ficasse o resultado?
Como disse no início, para que os registros sejam agrupados é necessário, a princípio, que os campos que não estão dentro de funções de agregação (ex: min, max, sum, avg, etc) possuam o mesmo valor. Isso após o Select. No Where pode ser utilizado qualquer campo.
Pelo que vi no último print que você postou os campos que possuem o mesmo valor são o rr.cliente, rr.indice e talvez o rr.data.



ola imex, gostaria que o resultado ficasse igual a segunda imagem, so apareceu o valor quando filtro por dtpagamento, se eu nao filtra ele retorna a igual o da primeira imagem..
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: Ter Ago 01, 2017 10:58 am    Assunto: Responder com Citação

Não consegui entender... Você pode postar o resultado da query abaixo com a tabela com os mesmos registros que existiam quando você executou a segunda query? Ou então os 2 resultados novamente?

Código:
select
rr.movsaida as movsaida,
rr.numero as codParcela,
rr.parcela,
rr.cliente as clientecodigo,
rr.indice as clientes,
rr.data as dtPagamento,
rr.vencimento  as vencimento,
rr.valor as valorpago
from creditocliente rr
where rr.cancelado = 0 and rr.numero <> 0
and rr.indice = 2033
and rr.data = '07.07.2017'


Qual versão do Firebird você está utilizando?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Ter Ago 01, 2017 1:27 pm    Assunto: Responder com Citação

imex escreveu:
Não consegui entender... Você pode postar o resultado da query abaixo com a tabela com os mesmos registros que existiam quando você executou a segunda query? Ou então os 2 resultados novamente?

Código:
select
rr.movsaida as movsaida,
rr.numero as codParcela,
rr.parcela,
rr.cliente as clientecodigo,
rr.indice as clientes,
rr.data as dtPagamento,
rr.vencimento  as vencimento,
rr.valor as valorpago
from creditocliente rr
where rr.cancelado = 0 and rr.numero <> 0
and rr.indice = 2033
and rr.data = '07.07.2017'


Qual versão do Firebird você está utilizando?



Ola imex, bom dia!

Esse select fica idêntico a segunda imagem, talvez ficou meio confuso, pelo sum, ele precisa somar os valores quando a parcela, for igual, como no exemplo abaixo mesmo sendo dtpagamento diferentes previsaria somar, pois são as mesmas parcelas(ex de outro cliente)

sem o comando sum


Com o sum Teria que ficar assim, com o primeiro comando que eu fiz. deu certo em 70% dos registros, mas os outros 30% não.



Acho que deu pra passar rsss


Se alguem puder ajudar

Firebird 2.7.5
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: Ter Ago 01, 2017 2:43 pm    Assunto: Responder com Citação

Pelo que entendi acredito que a query está funcionando conforme você espera para esse caso que você postou acima.
Gostaria de ver o resultado daquela query que postei para um desses casos que você não conseguiu obter o resultado esperado para ver se consigo identificar o que está acontecendo. E de preferência colocando também como você gostaria que ficasse o respectivo resultado.
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