用UNION关键字,动态产生SQL语句即可。例如: SELECT CODE,SALARY FROM TABLE1 WHERE CODE=:SX UNION SELECT CODE,SUM(SALARY) FROM TABLE1 WHERE CODE=SX UNION SELECT CODE,SALARY FROM TABLE1 WHERE CODE=:SD UNION SELECT CODE,SUM(SALARY) FROM TABLE1 WHERE CODE=SDQuery1.ParamByName('SX').AsString:='111'; Query1.ParamByName('SD').AsString:='222';当然只是说明思路,外面肯定要加一层循环,你不可能就111,222吧!
1、加两个TQuery :Query1,Query2 Query1: select 号码,费用 from table Query2: select 号码,费用=sum(费用) from table group by 号码 构成主从表2、用一个Query: select 号码,费用 from table //明细数据 union select 号码,费用=sum(费用) from table group by 号码 //小计数据 union select 号码,费用=sum(费用) from table //合计数据 order by 号码3、直接用 Table 和 QuickReport 来做我还没有做出来过。一般都用上面两方式来解决。
SELECT CODE,SALARY FROM TABLE1 WHERE CODE=:SX
UNION SELECT CODE,SUM(SALARY) FROM TABLE1 WHERE CODE=SX
UNION SELECT CODE,SALARY FROM TABLE1 WHERE CODE=:SD
UNION SELECT CODE,SUM(SALARY) FROM TABLE1 WHERE CODE=SDQuery1.ParamByName('SX').AsString:='111';
Query1.ParamByName('SD').AsString:='222';当然只是说明思路,外面肯定要加一层循环,你不可能就111,222吧!
Query1: select 号码,费用 from table
Query2: select 号码,费用=sum(费用) from table group by 号码
构成主从表2、用一个Query:
select 号码,费用 from table //明细数据
union
select 号码,费用=sum(费用) from table group by 号码 //小计数据
union
select 号码,费用=sum(费用) from table //合计数据
order by 号码3、直接用 Table 和 QuickReport 来做我还没有做出来过。一般都用上面两方式来解决。
给GROUPBAND的EXPR设为你要的111或112的字段名,表按该字段排序,
而GOUPBAND的FOOTBAND中就加入EXPRESSION控件使用SUM(。。)就可以了