如何将查询得到的多条记录插入到另张表格中(100分)

  • 主题发起人 主题发起人 hyphay
  • 开始时间 开始时间
H

hyphay

Unregistered / Unconfirmed
GUEST, unregistred user!
select * from tab1e1
result :
1 a
2 b
3 c
怎样将结果insert到 table2 (表格已建好)
 
使用SELECT INTO语句!,语法查 SQL 帮助。
 
insert into table2
select * from table1
這樣要求表的結構要一樣!
 
INSERT INTO TABLE2(字段1,字段2,....,字段n)
SELECT 字段1,字段2,...,字段n FROM TABLE1
 
我的意思是通过
tmpstr :='delete from TBL_QUO_RESULT';
frmQuo_result.Query1.Close;
frmQuo_result.Query1.SQL.Clear;
frmQuo_result.Query1.SQL.Add(tmpstr);
frmQuo_result.Query1.ExecSQL;
tmpstr1:='select b.EM_ID, b.EM_base_salary*o.EM_onduty_quo as EM_QUO_RESULT'
+' from Tbl_basesalary as B ,TBL_ONduty_quo as O'
+' where b.EM_ID=O.EM_ID';
frmQuo_result.Query1.Close;
frmQuo_result.Query1.SQL.Clear;
frmQuo_result.Query1.SQL.Add(tmpstr1);
frmQuo_result.Query1.Open;
EM_ID:=trim(frmQUO_RESULT.Query1.Fields[0].AsString);
EM_QUO_RESULT:=trim(frmQUO_RESULT.Query1.Fields[1].AsString);
tmpstr2:='insert into TBL_QUO_RESULT values('
+''''+EM_ID+''''
+','
+EM_QUO_RESULT
+')';
frmQuo_result.Query1.Close;
frmQuo_result.Query1.SQL.Clear;
frmQuo_result.Query1.SQL.Add(tmpstr2);
frmQuo_result.Query1.ExecSQL;

现在只能插入一条记录,不能插入多条记录。
是否需要循环语句,如何写
 
上面的人都说的没错呀,那是最简单的
如果你非要循环插入的话,用
for i:= 1 to frmQUO_RESULT.Query1.recordcount do
begin
EM_ID:=trim(frmQUO_RESULT.Query1.Fields[0].AsString);
EM_QUO_RESULT:=trim(frmQUO_RESULT.Query1.Fields[1].AsString);
tmpstr2:='insert into TBL_QUO_RESULT values('
+''''+EM_ID+''''
+','
+EM_QUO_RESULT
+')';
frmQuo_result.Query2.Close;
frmQuo_result.Query2.SQL.Clear;
frmQuo_result.Query2.SQL.Add(tmpstr2);
frmQuo_result.Query2.ExecSQL;
frmQuo_result.Query1.next;
end;
 
用Insert into table2(....) From Table1 Where....
可以在where中控制插入的是一条记录还是多条记录的。
 
谢谢各位
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部