问1  如何实现
table 1                            table 2
a1 a2 a3 ...a10                    a1 a2 a3 ...a10
1   2  3     8                     2  2  5      2
2   4  4     9                     1  6  4      8
6   2  3     14                    以a3为例
在dbgrid中显示 总计 5  总额 19    
table 1 和 table 2 的字段名和类型完全相同问2  我的数据库记录很多,有10几万,我想在dbgrid1中显示的记录中汇总
意思就是先在dbgrid1中查询,然后在dbgrid2中对dbgrid1的记录汇总 
这样可以少写很多代码。

解决方案 »

  1.   

    我写的代码如下:
    ADOquery3.SQL.Add('select count(*) as 总计,sum(a3) as 总额 from');
    ADOquery3.SQL.Add('(');
    ADOquery3.SQL.Add('select a3 from table 1');
    ADOquery3.SQL.Add('union');;
    ADOquery3.SQL.Add('select a3 from table 2 ');
    ADOquery3.SQL.Add(')');
    ADOquery3.SQL.Add('where a3 > 0');
    我不知道错那里,请大家帮忙
      

  2.   

    ADOquery3.SQL.Add('select count(a3) as 总计,sum(a3) as 总额 from');
    ADOquery3.SQL.Add('(');
    ADOquery3.SQL.Add('select a3 from table 1');
    ADOquery3.SQL.Add('union');;
    ADOquery3.SQL.Add('select a3 from table 2 ');
    ADOquery3.SQL.Add(')');
    ADOquery3.SQL.Add('where a3 > 0');
      

  3.   

    表名有空格?加括号 [table 1]
      

  4.   

    楼上的sql语句不会错~的~!
      那sql语句绝对可行~
      

  5.   

    ADOquery3.SQL.Add('select count(*) as 总计,sum(a3) as 总额 from');
    ADOquery3.SQL.Add('(');
    ADOquery3.SQL.Add('select a3 from table 1');
    ADOquery3.SQL.Add('union');;
    ADOquery3.SQL.Add('select a3 from table 2 ');
    ADOquery3.SQL.Add(') aa');
    ADOquery3.SQL.Add('where a3 > 0');
      

  6.   

    得了得了
    谢谢cjfden(虚心学习)
    也谢谢大家