一张表中的两个字段。如a,b,我要选出sum(a),更新到b字段中。
我用update 表A set b =(select sum(a)from 表A),ACCESS中通不过,我该怎么写?
我用的是ADO,另外,如果我想先select出来SUM(a),在将他付给一个变量S:=adoquery1.fieldbyname().vaule,那么在括号里我该怎么写啊。急死了。。

解决方案 »

  1.   

    select sum(a)as total from 表A 
    S:=adoquery1.fieldbyname('total').vaule
      

  2.   

    为了做实验新建了一个Access库,三个字段,id(自动编号),a(长整型,必填),b(长整型,默认0)。
    我的代码如下,D7中编译执行正常。
    procedure TForm1.Button1Click(Sender: TObject);
    var
        s:integer;
    begin
        with ADOQuery1 do begin
            Close;
            SQL.Clear;
            SQL.Add('Select sum(a) as total from table1');
            Open;
            s:=FieldByName('total').AsInteger;
            Close;
            SQL.Clear;
            SQL.Add('update table1 set b='+inttostr(s));;
            ExecSQL;
        end;
    end;
      

  3.   

    ...
    SQL.Clear;
    SQL.Add('update table1 set b=:P;
    SQL.parambyname('P').asstring:=s;
    ExecSQL;
    ....