注册 登录
编程论坛 Delphi论坛

关于COUNT的使用方法?

guang2356447 发布于 2007-11-05 21:22, 2744 次点击
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count(*) as kh_clqk from khts';
adoquery1.Open;
edit1.Text:=adoquery1.FieldValues['kh_clqk'];

这样运行后edit1.text中显示的数子为5 我数据库就5条记录

但是我加个条件后就出错什么原因
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count(*) as kh_clqk from khts where kh_clqk=''1''';
adoquery1.Open;
edit1.Text:=adoquery1.FieldValues['kh_clqk'];
这样运行就出错
我使用的是sybase数据库 采用ODBC数据源连接方式

出错信息
sybase ODBC Driver adaptive SERVER Anywhere SYNTAX ERROR OR ACCESS VIOLATION:Invalid use of an aggregate function
4 回复
#2
guang23564472007-11-07 13:17
解决 ACCESS中可以
adoquery1.SQL.Text:='select count(*) as kh_clqk from khts where kh_clqk=''1''';
在sybase中应改为
adoquery1.SQL.Text:='select count(*) aa from khts where kh_clqk=''1''';
#3
provoke2007-11-07 13:55

要是想分组计数,可以考虑使用 having 子句:

select count(*) num from khts
where ...
having num>=...

或者
having num<...
#4
niukang19852007-11-22 16:41
'kh_clqk' 不能作为查询条件把
#5
lonelywg2007-11-25 14:22
我记得是
adoquery1.SQL.add:='select count(*) as kh_clqk from khts';
1