ERRO NO SQL SUM
FELIZ 2017!!!!!
Olá pessoal...já faz um tempo que não passo por aqui...rsrsrsrs. Enfim, Tô tentando gerar um somatório por sql e está dando erro dizendo que "ADOQuery1: field Cod_Despesa not found" abaixo está meu código e a parte comentada do código funciona...etão acredito que seja algo na sql sum. Help galera!!!!
procedure TForm1.Button3Click(Sender: TObject);
var
vrTotal : Currency;
begin
vrTotal := 0;
With DM.ADOQuery1 do
begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT SUM(Valor_Despesa) as vrTotal FROM financeiro');
SQL.Add(' WHERE Ano_Despesa = "'+(Edit3.Text) + '"');
// SQL.Add('SELECT * FROM financeiro WHERE Ano_Despesa=:A ORDER BY Cod_Despesa ASC');
// Parameters.ParamByName('A').Value := '2017';
OPEN;
end;
end;
Olá pessoal...já faz um tempo que não passo por aqui...rsrsrsrs. Enfim, Tô tentando gerar um somatório por sql e está dando erro dizendo que "ADOQuery1: field Cod_Despesa not found" abaixo está meu código e a parte comentada do código funciona...etão acredito que seja algo na sql sum. Help galera!!!!
procedure TForm1.Button3Click(Sender: TObject);
var
vrTotal : Currency;
begin
vrTotal := 0;
With DM.ADOQuery1 do
begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT SUM(Valor_Despesa) as vrTotal FROM financeiro');
SQL.Add(' WHERE Ano_Despesa = "'+(Edit3.Text) + '"');
// SQL.Add('SELECT * FROM financeiro WHERE Ano_Despesa=:A ORDER BY Cod_Despesa ASC');
// Parameters.ParamByName('A').Value := '2017';
OPEN;
end;
end;
Fabricio Silva
Curtidas 0
Respostas
Jones Granatyr
02/01/2017
Opa! Dê uma olhada no Fields Editor da query (botão direito). Talvez esse campo que está dando erro esteja adicionado lá, e quando você tenta rodar é gerado esse erro
GOSTEI 0
Fabricio Silva
02/01/2017
Não entendi o que vc quis dizer Jonas Granatyr....o campo que está dando erro está sim na listagem do fields Editor e quando retiro um o mesmo erro passa para o campo seguinte.
GOSTEI 0
Fabricio Silva
02/01/2017
troquei o OPEN por ExecSQL e parou de dar erro mas também não retorna valor algum como resultado da consulta.
GOSTEI 0
Jones Granatyr
02/01/2017
Tentou rodar esse mesmo SQL direto no BD pra ver se está retornando algo?
GOSTEI 0
Gxf
02/01/2017
Veja se tem a coluna Cod_Despesa dentro da tabela no Banco de Dados
GOSTEI 0
Fabricio Silva
02/01/2017
Tem a coluna sim no bd e eu testei lá e dá o resultado certinho. não tenho idéia mais no que fazer. Eu só quero somar uma coluna de acordo com o ano digitado em uma caixa de texto o Edit3.Text e colocar o resultado dessa soma em outra caixa de texto cujo valor é o de vrTotal. Eu já estou surtando aqui.
GOSTEI 0
Gxf
02/01/2017
Desativa o adoquery e ativa de novo,vai que... haha
GOSTEI 0
Fabricio Silva
02/01/2017
Agora estou tentando assim...mas está travando ao invés de gerar erro.
procedure TForm1.Button3Click(Sender: TObject);
var
vrTotal : Currency;
begin
With DM.ADOQuery1 do
begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM financeiro WHERE Ano_Despesa=:A');
Parameters.ParamByName('A').Value := Edit3.Text;
OPEN;
end;
vrTotal := 0;
while not DM.ADOQuery1.Eof do
begin
vrTotal := vrTotal + DM.ADOQuery1Valor_Despesa.Value;
Next;
end;
Edit2.Text := FormatFloat('#,##0.00', vrTotal);
end;
Alguma ajuda por favor?????
procedure TForm1.Button3Click(Sender: TObject);
var
vrTotal : Currency;
begin
With DM.ADOQuery1 do
begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM financeiro WHERE Ano_Despesa=:A');
Parameters.ParamByName('A').Value := Edit3.Text;
OPEN;
end;
vrTotal := 0;
while not DM.ADOQuery1.Eof do
begin
vrTotal := vrTotal + DM.ADOQuery1Valor_Despesa.Value;
Next;
end;
Edit2.Text := FormatFloat('#,##0.00', vrTotal);
end;
Alguma ajuda por favor?????
GOSTEI 0
Fabricio Silva
02/01/2017
Pessoal...consegui segue abaixo o código que funcionou.
// #############################################################
With DM.ADOQuery_Soma_Despesas do
begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM despesas WHERE Ano_Despesa=:A');
Parameters.ParamByName('A').Value := Edit_Ano_Filtro_Financeiro.Text;
OPEN;
vrTotal := 0;
while not DM.ADOQuery_Soma_Despesas.Eof do
begin
vrTotal := vrTotal + DM.ADOQuery_Soma_DespesasValor_Despesa.Value;
Next;
end;
end;
Edit_Total_Despesa.Text := FormatFloat('#,##0.00', vrTotal);
// #############################################################
// #############################################################
With DM.ADOQuery_Soma_Despesas do
begin
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM despesas WHERE Ano_Despesa=:A');
Parameters.ParamByName('A').Value := Edit_Ano_Filtro_Financeiro.Text;
OPEN;
vrTotal := 0;
while not DM.ADOQuery_Soma_Despesas.Eof do
begin
vrTotal := vrTotal + DM.ADOQuery_Soma_DespesasValor_Despesa.Value;
Next;
end;
end;
Edit_Total_Despesa.Text := FormatFloat('#,##0.00', vrTotal);
// #############################################################
GOSTEI 0