我觉得你的库结构设计得不好,根据数据库设计范式你应将C1..24及N1..24分离到另一表中。
现在你用扫描表遍历字段的方法来实现就可以了,因为是桌面数据库,所以它并不比用SQL效率差,同时你的库结构对使用SQL有难度和繁琐之处。

解决方案 »

  1.   

    with Table1 do
    begin
      First;
      while not Eof do
      begin
       if (FieldByName('Dat').AsDateTime>StrToDateTime(Edit1.Text)) and (FieldByName('Dat').AsDateTime<StrToDateTime(Edit2.Text)) then
       begin
         with Number1 do
         begin
         Append;
           FieldByName('C1').AsInteger:=Table1.FieldByName('C1').AsInteger;
           FieldByName('C2').AsInteger:=Table2.FieldByname('C2').AsInteger;
            \        \\ 
         Post;
         end;
         with Number2 do
         begin
             \         同上;
             \     end;
       end; 
       Next;
      end;
    end;
     随便写的不一定对,自己试试吧。
      

  2.   

    insert into DestTable select field1,field2,field3 from SourTable where date_Field>date1 and date_Field<date2  
      

  3.   

    这样的sql语句缺少数据统计功能,没有完成题中的功能。