前些天的一个老问题散了100分没有解决,现在想这样写不知是否可行,select的聚合函数那部分变量的代码也不知道该怎么些请大家帮忙看下,谢谢!
http://topic.csdn.net/u/20080701/08/f4568183-78c6-47df-8b57-b9c9582b7cc8.htmlprocedure TForm5.Button2Click(Sender: TObject);
var i:integer;
    ss: string;
    tt: integer;
begin
 with DM3.table13 do  //table13-dbgj
  begin
  while EOF=false do
  begin
    for i:=0 to dm3.Table13.FieldCount-1 do
    begin
    ss :=dm3.Table13.FieldByName('参评人姓名').Value;
    dm3.Query19.SQL.Clear;
    dm3.Query19.SQL.Add('select sum(评审评分分数) as ?? from dbpf where 参评姓名=''ss''');
    dm3.Query19.Open;
    end;
    dm3.Query20.SQL.Clear;
    dm3.Query20.SQL.Add('update dbjg set 评审分数总分=''+tt+'' where 参评人姓名=''ss''');
    dm3.Query20.ExecSQL;
    next;
 end;
 end;
 end;

解决方案 »

  1.   

    发表于:2008-07-01 08:32:13 楼主 
    参评人 一项目总分 一项目平均分 二项目总分 
    参评人A1 
    参评人A2 
    参评人A3 
                                (表A分数统计表) 
        
    参评人 评委人 一项目 二项目 
    A1     B1     90    95 
    A1     B2     85    90 
    A2     B1     86    86 
    A3     B1     68    74 
    A1     B3     88    92 
    …      …      …      …                          
                                (表B打分集表) 
    表A是记分表,表B是打分表,现在想把表B中相同参评人(如:A1)不同评委的值进行汇总,导入到表A中请高手指点,谢谢! 
    用DELPHI7+ADO+ACCESS
     
      

  2.   

    select 参评人 ,评委人, avg(一项目),avg(二项目) from B
    group by 参评人,评委人select 参评人 ,评委人, sum(一项目),sum(二项目) from B
    group by 参评人,评委人
      

  3.   

    如果按你上面的表,一条SQL语句是可以实现的
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with adoquery1 do
      begin
        close;
        sql.text := ' insert into table1 '+
                    ' select name,sum(one) as onesum,avg(one) as oneavg,sum(two) as twosum'+
                    ' from table2'+
                    ' group by name';
        ExecSql;
      end;
    end;如果你的表B中保持是最全的数据,更新表A时,可以把A表先清空一下,再insert,不需要用循环。