小弟菜,麻烦大家帮忙了
with adoquery1 do
begin
close;
sql.clear;
sql.text:='select 客房等级,sum(收入金额) as 客房等级收入 from jiezhang group by 客房等级';
execsql;
if not eof then
close;
sql.clear;
sql.text:='insert into biao (客房等级,收入金额) values ( //这后面我就不知道该怎么写,我只是想实现这样,先查询出客房等级的收入,然后在添加到另外一个表。

解决方案 »

  1.   

    循環寫入?一個QUERY是搞不定的!
    這樣寫比較快:with adoquery1 do
    begin
      close;
      sql.clear;
      sql.text:='insert into biao (客房等级,收入金额) select 客房等级,sum(收入金额)  from jiezhang group by 客房等级';
      execsql;end;
      

  2.   

    楼上说得对:
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.text:='insert into biao (客房等级,收入金额) select 客房等级,sum(收入金额)  from jiezhang group by 客房等级';
      execsql;//not  open
    close;
    **********************
      sql.clear;
      sql.text:='insert into biao (客房等级,收入金额) select 客房等级,sum(收入金额)  from jiezhang group by 客房等级';end;
    如果用循环,必须用query2
    with query2 do
    begin
    sql.clear;
      sql.text:='insert into biao (客房等级,收入金额)values(query1.fieldsbyname('  ').asstring;,...........)
    end,
      

  3.   

    楼上的对呀
    只要保证客房等级,收入金额所在的表与select 的字段对应就行了
      

  4.   

    使用循环效率低下,楼上的两位的方法可取。直接用一个SQL语句实现,简单快速。
      

  5.   

    到底应该是怎么的呀,小弟菜也。
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.text:='insert into biao (客房等级,收入金额) select 客房等级,sum(收入金额)  from jiezhang group by 客房等级';
      execsql;
    这样我试过了,好象不行呀。