Query2.First; while not Query2.EOF do
begin
TABLE1.First ;
while not Table1.Eof do
begin
if Query2JLBH.Value=Table1JLBH.AsINTEGER THEN
BEGIN
Table1.Append;
Table1 .FieldByName('YHDW').Asstring:=Query2YHDW.AsString;
Table1 .FieldByName('FLJE').AsCurrency:=Query2FLJE.AsCurrency;
Table1 .FieldByName('BZ').Asstring:=Query2BZ.AsString;
Table1 .FieldByName('WLDW').AsString:=Query2WLDW.Asstring;
Table1 .FieldByName('JLBH').AsINTEGER:=Query2JLBH.AsInteger; end; TABLE1.NEXT;
end; Query2.Next; END;
我建立了一临时TABLE 分别用2个Query 用2个查询 给里边填充数据
我的想法是 先将第一个QUERY填充进去后,再填充QUERY2的有个条件 当QUERY2的里记录的JLBH 和QUERY1里相同时 讲QUERY2的记录填充到TABLE里那条记录的后边。
我现在这个办法 只能将数据添加到QUERY1 最后条后边请大家帮帮我 搞了一天了 。
begin
TABLE1.First ;
while not Table1.Eof do
begin
if Query2JLBH.Value=Table1JLBH.AsINTEGER THEN
BEGIN
Table1.Append;
Table1 .FieldByName('YHDW').Asstring:=Query2YHDW.AsString;
Table1 .FieldByName('FLJE').AsCurrency:=Query2FLJE.AsCurrency;
Table1 .FieldByName('BZ').Asstring:=Query2BZ.AsString;
Table1 .FieldByName('WLDW').AsString:=Query2WLDW.Asstring;
Table1 .FieldByName('JLBH').AsINTEGER:=Query2JLBH.AsInteger; end; TABLE1.NEXT;
end; Query2.Next; END;
我建立了一临时TABLE 分别用2个Query 用2个查询 给里边填充数据
我的想法是 先将第一个QUERY填充进去后,再填充QUERY2的有个条件 当QUERY2的里记录的JLBH 和QUERY1里相同时 讲QUERY2的记录填充到TABLE里那条记录的后边。
我现在这个办法 只能将数据添加到QUERY1 最后条后边请大家帮帮我 搞了一天了 。
这样插入的记录就是在你找到的记录之后了
另外最好的办法是给这个临时表Table1用记录编号建一个索引,这就无所谓新记录的存储位置了。
while not Query2.EOF do
begin
if Table1.Locate('JLBH', Query2JLBH.Value,[]) THEN
BEGIN
Table1.Append;
Table1 .FieldByName('YHDW').Asstring:=Query2YHDW.AsString;
Table1 .FieldByName('FLJE').AsCurrency:=Query2FLJE.AsCurrency;
Table1 .FieldByName('BZ').Asstring:=Query2BZ.AsString;
Table1 .FieldByName('WLDW').AsString:=Query2WLDW.Asstring;
Table1 .FieldByName('JLBH').AsINTEGER:=Query2JLBH.AsInteger;
end;
end;
Query2.Next;
END;
insert into TestTable
select * from (TestTable1 inner join TestTable2 on TestTable1.JLBH = TestTable2.JLBH)