Fórum AQL Quero somar o valor de uma (coluna) quando a data for = a data de hoje #493502
24/09/2014
0
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
Curtir tópico
+ 0Posts
24/09/2014
Ricardo
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
25/09/2014
Gabriel Silva
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
25/09/2014
Ricardo
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
25/09/2014
Ricardo
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
30/09/2014
Gabriel Silva
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
Clique aqui para fazer login e interagir na Comunidade :)