写的有些乱,表你自己建立,如果有什么问题可以发mail与我联系!
procedure TForm1.Button1Click(Sender: TObject);
begin
 with querytable1 do
   begin
     close;
     sql.clear;
     sql.add('select * from table1');
     open;
     while not eof do
       begin
         with querytable2 do begin
             close;
             sql.Clear;
             sql.Add('select * from table2 where num= :tempnum');
             sql.add('and name= :tempname');
             parambyname('tempnum').Asstring:=querytable1.fieldbyname('num').Asstring ;
             parambyname('tempname').asstring:=querytable1.fieldbyname('name').AsString;             open;            if Querytable2.RecordCount<>0 then begin
                with querytable3 do begin
                  close;
                  sql.Clear;
                  sql.Add('insert into table3(num,name,yl) values(:tempnum,:tempname,:tempyl)');
                  parambyname('tempnum').Asstring:=querytable1.fieldbyname('num').asstring;
                  parambyname('tempname').asstring:=querytable1.fieldbyname('name').asstring;
                  parambyname('tempyl').asinteger:=querytable1.fieldbyname('yl').AsInteger+querytable2.fieldbyname('yl').AsInteger;
                  execsql;
                end;
            end;
           end;
         next;
       end;
   end;
   with querytable3 do
     begin
       close;
       sql.clear;
       sql.add('select * from table3');
       open;
     end;    
end;