procedure TForm1.createtableClick(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.clear;
sql.add('create table '+Edit1.text+' (item varchar(10), num int)');
execsql;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into table '+edit1.text+'(item ,num)values("id1",select sum(id1) from test where id1=1)');
execsql;
end;
end;
程序意图:先建一个表格,再把select查询结果insert记录到表格中。
上面的程序可以运行,但按button1后,提示insert into 语法出错,也不知道是否能实现,请指教,小弟新手,不胜感激!

解决方案 »

  1.   

        sql.Add('insert into ' + edit1.text + ' (item ,num) select ''id1'', sum(id1) from test where id1=1');
      

  2.   

    sql.Add('insert into '+edit1.text+' (item,num) (select ''id1'', sum(id1) from test where id1=1)');
      

  3.   

    'insert into '+edit1.text+' (item,num) (select ''id1'', sum(id1) from test where id1=1)'
      

  4.   

    insert into后面直接跟表名,你的表名是edit1.text,所以insert into 后面的table去掉,id1是表test里的,故而要用select找出。sql.Add('insert into '+edit1.text+' (item,num) (select ''id1'', sum(id1) from test where id1=1)');
      

  5.   

    insert into 表(字段)(select 字段 from 表 where 条件)同意四楼 
      

  6.   

    sql.Add('select ''id1'', sum(id1) intto '+edit1.text+'(item,num) from test where id1=1 ')
      

  7.   

    还是不行,现在需要处理的问题是,insert 到表里的两项数据,一项是select出来的(sum(id1)),一项是自己加上去的("id1"),如果如上述大家给出的方法,都放在select 里面的话会出错,请大家再帮我想想办法吧,谢谢了