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 

Erro instrução SQL

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


Registrado: Sexta-Feira, 17 de Fevereiro de 2012
Mensagens: 873

MensagemEnviada: Qua Jan 04, 2017 9:32 pm    Assunto: Erro instrução SQL Responder com Citação

Galera não estou conseguindo sair daqui, podem me ajudar,
Não estou conseguindo fazer o GROUP BY

Código:
IBQPagRec.Close;
               IBQPagRec.SQL.Clear;
               IBQPagRec.SQL.Add('Select CODIGO_ID,EMISSAO,VENCIMENTO,PAGAMENTO,CLIFOR,TIPOCONTA,VALOR,DESCONTO,JUROS,');
               IBQPagRec.SQL.Add('SUBCONTA,CONTA,HISTORICO,DOCUMENTO,COMPROVANTE,MULTA,JUROSDIA,NFE,ENTRADA,TOTAL,STATUS,');
               IBQPagRec.SQL.Add('DIAS,CARTORIO,CODFAT,BANCO,AGENCIA,TITULO,CARTEIRA,ESPECIE,TRANSACAO,PPROTECAO,CHEQUE,');
               IBQPagRec.SQL.Add('DTCHEQUE,AGCHEQUE,CODAGCHEQUE,NUMBANCOCHEQUE,EMITENTECHEQUE,CCCHEQUE,VALORCHEQUE,VALORDOCUMENTO');
               IBQPagRec.SQL.Add('PARCELA,VENDA,DV,CARNE,FUNCQUITACAO, sum(TOTAL)as TotalMovimento');
               IBQPagRec.SQL.Add(' from pagarreceber LEFT JOIN pagarreceber Where status =:p1 and vencimento BETWEEN :p2 and :p3');
               IBQPagRec.SQL.Add('and clifor like :p4  GROUP BY pagarreceber order by vencimento');
               IBQPagRec.ParamByName('p1').AsString :='A';
               IBQPagRec.ParamByName('p2').AsDateTime := vencIni.Date;
               IBQPagRec.ParamByName('p3').AsDateTime := vencFim.Date;
               IBQPagRec.ParamByName('p4').AsInteger  := DBLCliente.KeyValue;
               IBQPagRec.Open;


Citação:
Quero trazer todos os campos da tabela pagar e receber , somar o campo TOTAL e passar por parametros a informacao a ser traga

_________________
Atrás de todo problema a uma oportunidade brilhantemente disfarçada!
Compartilhar Imagens .: http://s124.photobucket.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
imex
Moderador
Moderador


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

MensagemEnviada: Qua Jan 04, 2017 10:53 pm    Assunto: Responder com Citação

Boa noite,

Qual banco de dados (e versão) você está utilizando?
Você precisa, a princípio, colocar todos os campos que estão no Select e não estão dentro de funções de agregação (no seu caso somente o campo Total está dentro de uma) dentro da clausula Group By.
Apesar que talvez você não obtenha o total esperado com essa query, mas vale o teste.

obs: não entendi a finalidade do Left Join, talvez ele não seja necessário; da forma como está me parece que ele está incompleto, sem o On e as condições para a ligação entre as tabelas

Espero que ajude


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


Registrado: Quarta-Feira, 26 de Mai de 2010
Mensagens: 672

MensagemEnviada: Seg Jan 09, 2017 9:47 am    Assunto: Responder com Citação

Bom dia,

Faltou tb um alias para as tabelas ja que na consulta envolve mais de uma tabela, e ainda se quer trazer todos os campos por que não usa o (*) ao invés de informar todos os campos ?

sobre o Group By, se vc quer somar um campo apenas, os demais campos tem q vir no group By vc informou apenas um campo.

Veja tb que esse select não deve rodar nem no seu editor de código reveja todo ele antes de trazer para a aplicação.
_________________
O conhecimento só tem valor quando compartilhado!

Douglas Sousa
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
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