请问count(),sum()在ADOQUERY中怎么用?(0分)

  • 主题发起人 主题发起人 lfqbl
  • 开始时间 开始时间
L

lfqbl

Unregistered / Unconfirmed
GUEST, unregistred user!
count(),sum()在设计的时候写入SQL语句
select count(*),sum(*)
from table
group by fieldname
这样是可以运行的,但是如果在运行的时候,也就动态加入SQL语句
sql.add('select count(*),sum(*)');
sql.add('from table');
sql.add('group by fieldname');
就运行不了,请问应该怎么做?
 
有没有先关掉查询?
query.close;
query.sql.clear;
query.sql.add('select count(*),sum(*)');
query.sql.add('from table');
query.sql.add('group by fieldname');
query.Open;
就可以了。
 
我已先关掉了.还是不行.
 
是不是Table中有的字段不能计算呀!看
上面的代码应该没有什么问题!
 
可是为什么在设计的时候可以呢,我用的是TADOQUERY.
 
var
sqlstr:string;
var
sqlstr:=' SELECT COUNT(*),SUM(*) FROM table GROUP BY fieldname';
...
query.sql.add(sqlstr);
query.open;
行不行.
 
请注意:count(*),万一里面有字段为null怎么办?不就出错啦?
sum(*)也是觉得莽撞了 换做整型底字段吧
 
query.close;
query.sql.clear;
query.sql.add('select count(*),sum(*)');
query.sql.add('from table');
query.sql.add('group by fieldname');
query.Open;
这样的结果等于 select count(*),sum(*)from tablegroup by fieldname 是错的,应该是
select count(*),sum(*) from table group by fieldname中间应该有空格。
所以应该是:
query.close;
query.sql.clear;
query.sql.add('select count(*),sum(*)');
query.sql.add(' from table');
query.sql.add(' group by fieldname');
 
sql.text:='select count(*),sum(*) from table group by fieldname';
 
大家的方法我都试过了,但还是以前那样,我忘了告诉大家我用的是ACCESS数据库,TADOQUERY
 
我现在通过下面的代码可以得到结果,但会出现一个错误,我应该怎么办:
close
SQL.Add ('select Paymethod as 付款方式,sum(money) as 金额,COUNT(*) as 次数');
SQL.Add(#13#10+'from invoice');
SQL.add(#13#10+'where (Date=#'+ ConvertDate(Date.caption)+'#) and (Cashier="'+Cashier.Caption+'")');
SQL.Add(#13#10+'group by paymethod');
open;
 
TADOQUERY 请问你链接数据库没有,connectionstring--->?
 
后退
顶部