Soma MySQL com select sum

Delphi

13/02/2020

Tiago Modena:
Bom dia pessoal, estou fazendo uma soma com MYSQL Delphi Mobile mas não esta funcionando, alguém pode ajudar por favor?

dm.QueryCadastro.Close;
dm.QueryCadastro.SQL.Clear;
dm.QueryCadastro.SQL.Add('select SUM(valor) AS TOTAL FROM cadastro');
dm.QueryCadastro.SQL.Add('WHERE data >= :DATAINI and data <= :DATAFIM');
dm.QueryCadastro.ParamByName('DATAINI').Value := DataInicio.Date;
dm.QueryCadastro.ParamByName('DATAFIM').value := DataFim.Date;
dm.QueryCadastro.open;

Label1.text := FloatToStr(dm.QueryCadastro.FieldByname('TOTAL').AsFloat);
Tiago Modena

Tiago Modena

Curtidas 0

Respostas

Anderson Gonçalves

Anderson Gonçalves

13/02/2020

Tiago Modena:
Bom dia pessoal, estou fazendo uma soma com MYSQL Delphi Mobile mas não esta funcionando, alguém pode ajudar por favor?

dm.QueryCadastro.Close;
dm.QueryCadastro.SQL.Clear;
dm.QueryCadastro.SQL.Add('select SUM(valor) AS TOTAL FROM cadastro');
dm.QueryCadastro.SQL.Add('WHERE data >= :DATAINI and data <= :DATAFIM');
dm.QueryCadastro.ParamByName('DATAINI').Value := DataInicio.Date;
dm.QueryCadastro.ParamByName('DATAFIM').value := DataFim.Date;
dm.QueryCadastro.open;

Label1.text := FloatToStr(dm.QueryCadastro.FieldByname('TOTAL').AsFloat);



Querido nesse momento
dm.QueryCadastro.SQL.Add('WHERE data >= :DATAINI and data <= :DATAFIM');

utilize o comando BETWEEN para verificar intervalos.
dm.QueryCadastro.SQL.Add('WHERE data between :DATAINI and :DATAFIM');

testa e da um feedback se resolveu o seu problema.

Espero ter ajudado.
GOSTEI 0
Tiago Modena

Tiago Modena

13/02/2020

Obrigado vou testar, mas o intervalo de datas eu debuguei e funcionou mas não consigo somar e mostrar em uma label ou edit.
Ele traz o erro que o campo id não foi encontrado mas sim existe e está normal na query.
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

13/02/2020

provavelmente você persistiu os campos no dataset dm.QueryCadastro. dê um duplo clique nele e veja se há campos na lista.
possivelmente você verá ali o campo ID, porém na sua nova pesquisa ('select SUM(valor) AS TOTAL...') você não relaciona o campo ID, causando o erro.

eu sugiro a você ter um objeto dataset separado, somente para esse tipo de consulta, sem reutilizar algum que já tenha um uso definido.

GOSTEI 0
POSTAR