AQL Quero somar o valor de uma (coluna) quando a data for = a data de hoje
Estou usando esse código, ele esta no onshow do form mas .... aparece uma mensagem " ADOQuery1ap field 'código' not found"
não sei mais o que eu faço ... quando eu tiro o close,open, ela abre mas não funciona ... algem pode me ajudar ?
begin
var
hoje: TDateTime;
resu: real;
begin
ADOQuery1ap.Close;
ADOQuery1ap.SQL.Clear;
ADOQuery1ap.SQL.Text:= 'SELECT Sum(valor) AS Expr1 FROM cont_a_pagar ' + 'where data_da_compra= :total ;
ADOQuery1ap.Parameters.ParamByName('total').Value:= ,StrToDate(hoje);
ADOQuery1ap.ExecSQL;
ADOQuery1ap.Open;
resu:= ADOQuery1ap.FieldByName('Expr1').AsFloat;
edit5.Text:=formatfloat ('#,##0.00',resu) ;
não sei mais o que eu faço ... quando eu tiro o close,open, ela abre mas não funciona ... algem pode me ajudar ?
begin
var
hoje: TDateTime;
resu: real;
begin
ADOQuery1ap.Close;
ADOQuery1ap.SQL.Clear;
ADOQuery1ap.SQL.Text:= 'SELECT Sum(valor) AS Expr1 FROM cont_a_pagar ' + 'where data_da_compra= :total ;
ADOQuery1ap.Parameters.ParamByName('total').Value:= ,StrToDate(hoje);
ADOQuery1ap.ExecSQL;
ADOQuery1ap.Open;
resu:= ADOQuery1ap.FieldByName('Expr1').AsFloat;
edit5.Text:=formatfloat ('#,##0.00',resu) ;
Gabriel Silva
Curtidas 0
Respostas
Ricardo
24/09/2014
Retire a linha do Exec.Sql, pois nunca deve existir quando a instrução é Select.
ADOQuery1ap field 'código' not found" = O campo código não está sendo selecionado pela instrução.
tente: 'SELECT *, Sum(valor) AS Expr1 FROM cont_a_pagar where data_da_compra = :total' ;
ADOQuery1ap field 'código' not found" = O campo código não está sendo selecionado pela instrução.
tente: 'SELECT *, Sum(valor) AS Expr1 FROM cont_a_pagar where data_da_compra = :total' ;
GOSTEI 0
Gabriel Silva
24/09/2014
cara ta quase dando certo ....
coloquei esse codigo ... mas ta dando que nao existe a expressao Expr1 ... ai tipo si eu tirar a linha do edit5.text .... funciona normal ...
e si eu colocar um close, open ela ja da o problema do codigo
e si eu deixar o select com " *, " da um outro erro
begin
hoje:= now;
ADOQuery1ap.SQL.Clear;
ADOQuery1ap.SQL.Add('SELECT Sum(valor) AS Expr1 FROM cont_a_pagar where data_da_compra = :total' );
ADOQuery1ap.Parameters.ParamByName('total').Value:= datetostr(hoje);
// SELECT *, Sum(valor) AS Expr1 FROM cont_a_pagar where data_da_compra = :total' ;
edit5.Text:= ADOQuery1ap.FieldByName('Expr1').AsString;
ADOQuery1ap.Close;
ADOQuery1ap.SQL.Clear;
ADOQuery1ap.SQL.Add ('SELECT * from cont_a_pagar') ;
ADOQuery1ap.Open;
ADOQuery1ap.ExecSQL;
coloquei esse codigo ... mas ta dando que nao existe a expressao Expr1 ... ai tipo si eu tirar a linha do edit5.text .... funciona normal ...
e si eu colocar um close, open ela ja da o problema do codigo
e si eu deixar o select com " *, " da um outro erro
begin
hoje:= now;
ADOQuery1ap.SQL.Clear;
ADOQuery1ap.SQL.Add('SELECT Sum(valor) AS Expr1 FROM cont_a_pagar where data_da_compra = :total' );
ADOQuery1ap.Parameters.ParamByName('total').Value:= datetostr(hoje);
// SELECT *, Sum(valor) AS Expr1 FROM cont_a_pagar where data_da_compra = :total' ;
edit5.Text:= ADOQuery1ap.FieldByName('Expr1').AsString;
ADOQuery1ap.Close;
ADOQuery1ap.SQL.Clear;
ADOQuery1ap.SQL.Add ('SELECT * from cont_a_pagar') ;
ADOQuery1ap.Open;
ADOQuery1ap.ExecSQL;
GOSTEI 0
Ricardo
24/09/2014
Vamos lá novamente.
ADOQuery1ap.ExecSQL, pode esquecer. Não existe quando a instrução SQL for o Select, é usada apenas para insert, update, delete etc.
ADOQuery1ap.Close tem que ser antes do sql.clear.
Você esta fazendo compraração entre datas. Então veja uma diferença: now = data e hora, date = data. Então hoje := date;
var
hoje, resu : String;
begin
hoje := DateToStr(date);
with ADOQuery1ap do
begin
Close;
SQL.Clear;
SQL.ADD('SELECT *, Sum(valor) as Expr1 from cont_a_pagar where data_da_compra= :Phoje') ;
Params.ParamByName('Phoje').Value := hoje;
Open;
end;
resu := ADOQuery1ap.FieldByName('Expr1').AsFloat;
edit5.text := FormatFloat ('###,##0.00',resu);
end;
ADOQuery1ap.ExecSQL, pode esquecer. Não existe quando a instrução SQL for o Select, é usada apenas para insert, update, delete etc.
ADOQuery1ap.Close tem que ser antes do sql.clear.
Você esta fazendo compraração entre datas. Então veja uma diferença: now = data e hora, date = data. Então hoje := date;
var
hoje, resu : String;
begin
hoje := DateToStr(date);
with ADOQuery1ap do
begin
Close;
SQL.Clear;
SQL.ADD('SELECT *, Sum(valor) as Expr1 from cont_a_pagar where data_da_compra= :Phoje') ;
Params.ParamByName('Phoje').Value := hoje;
Open;
end;
resu := ADOQuery1ap.FieldByName('Expr1').AsFloat;
edit5.text := FormatFloat ('###,##0.00',resu);
end;
GOSTEI 0
Ricardo
24/09/2014
Vamos lá novamente.
ADOQuery1ap.ExecSQL, pode esquecer. Não existe quando a instrução SQL for o Select, é usada apenas para insert, update, delete etc.
ADOQuery1ap.Close tem que ser antes do sql.clear.
Você esta fazendo compraração entre datas. Então veja uma diferença: now = data e hora, date = data. Então hoje := date;
var
hoje, resu : String;
begin
hoje := DateToStr(date);
with ADOQuery1ap do
begin
Close;
SQL.Clear;
SQL.ADD('SELECT *, Sum(valor) as Expr1 from cont_a_pagar where data_da_compra= :Phoje') ;
Params.ParamByName('Phoje').Value := hoje;
Open;
end;
resu := ADOQuery1ap.FieldByName('Expr1').AsFloat;
edit5.text := FormatFloat ('###,##0.00',resu);
end;
ADOQuery1ap.ExecSQL, pode esquecer. Não existe quando a instrução SQL for o Select, é usada apenas para insert, update, delete etc.
ADOQuery1ap.Close tem que ser antes do sql.clear.
Você esta fazendo compraração entre datas. Então veja uma diferença: now = data e hora, date = data. Então hoje := date;
var
hoje, resu : String;
begin
hoje := DateToStr(date);
with ADOQuery1ap do
begin
Close;
SQL.Clear;
SQL.ADD('SELECT *, Sum(valor) as Expr1 from cont_a_pagar where data_da_compra= :Phoje') ;
Params.ParamByName('Phoje').Value := hoje;
Open;
end;
resu := ADOQuery1ap.FieldByName('Expr1').AsFloat;
edit5.text := FormatFloat ('###,##0.00',resu);
end;
GOSTEI 0
Gabriel Silva
24/09/2014
eu consegui aqui .... so to com um outro problema ....
suponhamos que eu tenho uma conta que vence hoje dia 30/09/2014
eu quero que em um edit apareça a data de vencimento da proxima conta. por exempro
si essa vence dia 30/09/2014 eu quero que me mostre a de 02/10/2014 e si possivel a soma de todas as contas dessa derminada data.
obs: isso nao é between nao é comparação... é simplesmente uma verificação da data posterior . desde ja agradeço
suponhamos que eu tenho uma conta que vence hoje dia 30/09/2014
eu quero que em um edit apareça a data de vencimento da proxima conta. por exempro
si essa vence dia 30/09/2014 eu quero que me mostre a de 02/10/2014 e si possivel a soma de todas as contas dessa derminada data.
obs: isso nao é between nao é comparação... é simplesmente uma verificação da data posterior . desde ja agradeço
GOSTEI 0