数据库查询出错,请各位帮帮忙
with Form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select staff,sum(amount) from pay where staff=1004 group by staff');
Open;
end;
运行没有错误
但是:
with Form1.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select staff,sum(amount) from pay where staff=:postst group by staff');
Parameters.ParamByName('Postst').Value:=1004;
Open;
end;
就会报错ora00979:not a group by expression,把group by 去掉就报ora00937 :not a single-group group function.
请问这是什么原因?谢谢!
问题点数:50、回复次数:3Top
1 楼angle097113(深思不解)回复于 2005-01-06 12:46:55 得分 15
sql.add(Format('Select ..where staff=%d... ',[值参数]));
这样试试看,确实看不出你的有什么问题,Top
2 楼Kshape(C/C++初学者~~~~)回复于 2005-01-06 13:39:29 得分 0
楼主问题确实很怪,我没有遇到过!Top
3 楼Kshape(C/C++初学者~~~~)回复于 2005-01-06 13:41:15 得分 35
GROUP BY 和 WHERE 子句
可以在包含 GROUP BY 子句的查询中使用 WHERE 子句。在进行任何分组之前,将消除不符合 WHERE 子句条件的行。例如:
USE pubs
SELECT type, AVG(price)
FROM titles
WHERE advance > $5000
GROUP BY type
下面是结果集:
type
------------ --------------------------
business 2.99
mod_cook 2.99
popular_comp 21.48
psychology 14.30
trad_cook 17.97
(5 row(s) affected)
只有预付款超过 $5,000 的行才包含在查询结果所显示的组中。
Top




