用Query控制查询出来的结果,能否进行字段统计???(100分)

  • 主题发起人 主题发起人 大森林
  • 开始时间 开始时间

大森林

Unregistered / Unconfirmed
GUEST, unregistred user!
用Query控制查询出来的结果,能否进行字段统计???
请问如何写这段程序?或者怎样使用控件属性或函数?
 
嗨,我不是说我数据库很菜嘛:)
我想应该可以吧。
 
Query查寻的时候SQL语句就可以统计吸哈
 
用infopower控件,其中的网格有自动累计功能。
 
SQL里有个函数COUNT()可以统计一个字段,试试。
别外笨办法就是循环加了!
 
说详细些。
 
是呀,你能不能说的详细一些
 
字段统计,Query本身有这个属性,不过身边没有DELPHI,忘记了[:)]
 
我有一个Table,其中有姓名,一等,二等,三等,等外。
我用Query查询(按姓名)得到N条记录,我想把这N条记录打印出来,并
在合计一栏里统计出一等二等三等和等外的每一个字段的总数!
 
笨办法:循环加
另一个办法:再用一个Query,SQL为 SELECT SUM(一等),SUM(二等) from table1 WHERE NAME='张三'
再将这个QUERY的查询结果打印到第一个Query的后面即可。
 
完全同意白海森
 
最笨就用临时表了
 
var
s : string;

with Query2 do
begin
s := 'select sum(level1) as l1,sum(level2) as l2,sum(level3) as l3 from table1 where name=''' + edit1.text + '''';
sql.clear;
sql.add(s);
open;
end;

现在你可以访问Query2的字段l1,l2,l3,即可获得你所需的统计数据。
 
非常感谢白海森![:)]
 
加个count
s := 'select sum(level1) as l1,sum(level2) as l2,sum(level3) as l3 ,count(*)as acount from table1 where name=''' + edit1.text + '''';
 
假如我就把 姓名 改成 日期, 也就是把倒数第二个程序中的Name改成 日期 就可以了吧,
可我试了好长时间都没有用都显示出错为什么?
 
可以用变量,如:
QUERY.CLOSE;
QUERY.SQL.CLEAR;
QUERY.SQL.ADD('select * from table1 where rq:=rq');
QUERY.ParamByName('rq').AsDateTime:=StrToDate(edit1.Text);
QUERY.Open;
 
日期在SQL中的形式 '#'+日期字符串+'#'
 
多人接受答案了。
 
同以大家的
 
后退
顶部