query1.close; query1.sql.text := 'select * form table1' query1.open; query2.close; query2.sql.text := 'select * form table2' query2.open; while not query1.eof do begin query1.edit; query1.fieldbyname('盒数1').asstring := query2.fieldbyname('收入数量).asstring; query1.fieldbyname('金额1').asstring := query2.fieldbyname('收入金额').asstring; query1.post; query1.next; query2.next; end; 这是参考,细节你自己处理
insert into 表1 (单位名称,盒数1,金额1) select 单位名称,收入数量,收入金额 from 表2不太明白你到底要做什么,我猜测可能是这样。
update 表1 a set 盒数1=(select收入数量 from 表2 b where a.单位名称=b.单位名称),金额1=(select 收入金额 from 表2 b where a.单位名称=b.单位名称) where a.单位名称=b.单位名称
Update 表1 set 盒数1=表2.收入数量, 金额1 = 表2.收入金额 from 表2 where 表1.单位名称=表2.单位名称
Update 表1 set 盒数1=表2.收入数量, 金额1 = 表2.收入金额 from 表1,表2 where 表1.单位名称=表2.单位名称
query1.close; query1.sql.text := 'select * form table1' query1.open; query2.close; query2.sql.text := 'select * form table2' query2.open; while not query1.eof do begin query2.first; while not query2.eof do begin if trim(query1.fieldbyname('单位名称 ').asstring) = trim(query1.fieldbyname('单位名称 ').asstring) then begin query1.edit; query1.fieldbyname('盒数1').asstring := query2.fieldbyname('收入数量).asstring; query1.fieldbyname('金额1').asstring := query2.fieldbyname('收入金额').asstring; query1.post; break; end else query1.next; query2.next; end; end;这样可能速度会慢一些,你可以用Locate定位会快上些
query1.sql.text := 'select * form table1'
query1.open;
query2.close;
query2.sql.text := 'select * form table2'
query2.open;
while not query1.eof do
begin
query1.edit;
query1.fieldbyname('盒数1').asstring := query2.fieldbyname('收入数量).asstring;
query1.fieldbyname('金额1').asstring := query2.fieldbyname('收入金额').asstring;
query1.post;
query1.next;
query2.next;
end;
这是参考,细节你自己处理
select 单位名称,收入数量,收入金额 from 表2不太明白你到底要做什么,我猜测可能是这样。
set 盒数1=(select收入数量 from 表2 b where a.单位名称=b.单位名称),金额1=(select 收入金额 from 表2 b where a.单位名称=b.单位名称)
where a.单位名称=b.单位名称
set 盒数1=表2.收入数量,
金额1 = 表2.收入金额
from 表2
where 表1.单位名称=表2.单位名称
set 盒数1=表2.收入数量,
金额1 = 表2.收入金额
from 表1,表2
where 表1.单位名称=表2.单位名称
query1.sql.text := 'select * form table1'
query1.open;
query2.close;
query2.sql.text := 'select * form table2'
query2.open;
while not query1.eof do
begin
query2.first;
while not query2.eof do
begin
if trim(query1.fieldbyname('单位名称 ').asstring) = trim(query1.fieldbyname('单位名称 ').asstring) then
begin
query1.edit;
query1.fieldbyname('盒数1').asstring := query2.fieldbyname('收入数量).asstring;
query1.fieldbyname('金额1').asstring := query2.fieldbyname('收入金额').asstring;
query1.post;
break;
end else
query1.next;
query2.next;
end;
end;这样可能速度会慢一些,你可以用Locate定位会快上些