就再写一遍sql就行了,比如
1:select a,b,c from aa where b>100那么2就写成
select sum(c) from aa where b>100明白了吗?

解决方案 »

  1.   

    你在第一次查询的时候就可以SUM(字段)为什么一定要再进行一次呢?
    select sum(count) form biao where .......!
      

  2.   

    我一定要再进行一次的。
    问题在于我现在from的已不是表或视图了。而是一个数据集(ADODataSet)
    请指教
      

  3.   

    可以将数据集(ADODataSet)的值直接赋给另外一个数据集,这个就要你自己计算了。
      

  4.   

    可以通过TClientDataSet,直接赋值。
      

  5.   

    select sum(z.a) from (select * from tablename) as z
    一个不就够了?
      

  6.   

    select sum(c) from aa where b>100
    还要加上group by ...
    你自几试试吧,思路是这样
      

  7.   

    第一个adoquery: select * from A as temp
    第二个adoquery: select c from temp
    不就搞定!?
    还有一种方法就是用“克隆”数据集!
    adoquery.clone();
      

  8.   

    你可以把第二个query的DateSource指定到第一个query上,就可以完成了
      

  9.   

    这样试试吧
    ADOQueryy1.SQL.Add('SELECT * FROM yourtable ');
    ...
    ADOQuery2.SQL.Add('SELECT sumvalue=SUM(A.fieldx)        ');
    ADOQuery2.SQL.Add('  FROM ('+ADOQuery1.SQL.Text+') AS A ');//A是个任意取的别名,fieldx是你的字段
      

  10.   

    如果你用的是 SQL Server, 那就第一个adoquery: select * into #Temp from A 这样就在 SQL Server 中建立了一个临时表然后:第二个adoquery: select Sum(c) from #temp
      

  11.   

    不能对数据集进行SQL操作,sql操作是数据库的概念。
    在这种情况下必须运用组合查询(SUBQUERY)。
      

  12.   

    cs2001说的对:你可以把第二个query的DateSource指定到第一个query上,就可以完成了
      

  13.   

    只用一个不更好?adoquery: select a, b, c from table
              union
              select '合计' as a, ' ' as b, sum(c) as c from table
      

  14.   

    假设你第一个语句是SELECT 字段(1,2,3) FROM 表 条件1
    那你就直接SELECT sum(字段A) FROM 表 条件1不就行了
    如果你不想破坏原来的DATASET就再用一个指向同一个DATASOUCE就行了