select sum(z.a) from (select * from tablename) as z 一个不就够了?
select sum(c) from aa where b>100 还要加上group by ... 你自几试试吧,思路是这样
第一个adoquery: select * from A as temp 第二个adoquery: select c from temp 不就搞定!? 还有一种方法就是用“克隆”数据集! adoquery.clone();
你可以把第二个query的DateSource指定到第一个query上,就可以完成了
这样试试吧 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是你的字段
如果你用的是 SQL Server, 那就第一个adoquery: select * into #Temp from A 这样就在 SQL Server 中建立了一个临时表然后:第二个adoquery: select Sum(c) from #temp
select sum(count) form biao where .......!
问题在于我现在from的已不是表或视图了。而是一个数据集(ADODataSet)
请指教
一个不就够了?
还要加上group by ...
你自几试试吧,思路是这样
第二个adoquery: select c from temp
不就搞定!?
还有一种方法就是用“克隆”数据集!
adoquery.clone();
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是你的字段
在这种情况下必须运用组合查询(SUBQUERY)。
union
select '合计' as a, ' ' as b, sum(c) as c from table
那你就直接SELECT sum(字段A) FROM 表 条件1不就行了
如果你不想破坏原来的DATASET就再用一个指向同一个DATASOUCE就行了