请教一个问题?

kristy811203 2006-11-21 04:45:06
当我运行一段程序的时候,提示如下错误信息:
Project wy.exe raised exception class EDBEngineError with message 'When GROUP BY exists,every simple field in projectors must be in GROUP BY.'.Process stopped.Use Step or Run to continue.
请问这是什么引起的,应该如何解决。
...全文
177 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kristy811203 2006-11-23
  • 打赏
  • 举报
回复
那位帮忙解决一下。小弟不胜感激啊
StarRains 2006-11-23
  • 打赏
  • 举报
回复
设置断点,跟踪一下到底是执行到那句出错的,这样才好查问题
StarRains 2006-11-22
  • 打赏
  • 举报
回复
就是这样的:
query4.Close;
query4.SQL.Clear;
query4.SQL.Add('delete from RYFYHZ');
query4.ExecSQL;

query4.Close;
query4.SQL.Clear;
query4.sql.Add('insert into RYFYHZ (name,SL,ZSF,DL,ZDF,JS)');
query4.SQL.Add(' select name,sum(B3),sum(B4),sum(C3),sum(C4),JS from jf');
query4.SQL.Add('group by name,JS');
query4.ExecSQL;


query4.Close;
query4.SQL.Clear;
query4.SQL.Add('select sum(SL),sum(ZSF),sum(DL),sum(ZDF),JS');
query4.SQL.Add(' from RYFYHZ GROUP BY JS');
query4.Open;
StarRains 2006-11-22
  • 打赏
  • 举报
回复
还有上面的一句我漏了
query4.sql.Add('insert into RYFYHZ (name,SL,ZSF,DL,ZDF,JS)');
query4.SQL.Add(' select name,sum(B3),sum(B4),sum(C3),sum(C4),JS from jf');
query4.SQL.Add('group by name');
改成
query4.sql.Add('insert into RYFYHZ (name,SL,ZSF,DL,ZDF,JS)');
query4.SQL.Add(' select name,sum(B3),sum(B4),sum(C3),sum(C4),JS from jf');
query4.SQL.Add('group by name,JS');
kristy811203 2006-11-22
  • 打赏
  • 举报
回复
我试了一下,还是不行啊
应该怎么解决呀,求救啊
StarRains 2006-11-22
  • 打赏
  • 举报
回复
把这句
query4.SQL.Add('select sum(SL),sum(ZSF),sum(DL),sum(ZDF),JS');
query4.SQL.Add(' from RYFYHZ');
改成
query4.SQL.Add('select sum(SL),sum(ZSF),sum(DL),sum(ZDF),JS');
query4.SQL.Add(' from RYFYHZ GROUP BY JS');
kristy811203 2006-11-22
  • 打赏
  • 举报
回复
不好意思,你说的我没有明白,jf是一个表的名称,我没有查询jf表中的所有字段,我只是把学要的查出来了,什么叫统计字段,我不明白,能说明一下吗
你能说的明白点吗,我刚刚开始学,不怎么懂,谢谢
spirit_sheng 2006-11-22
  • 打赏
  • 举报
回复
分组查询, SELECT 中的所有字段, 要么出现在 group by中, 要么必须是统计字段, 而你的SQL jf 字段两组都不是,

可以改为
group by name, jf
试试看
kristy811203 2006-11-22
  • 打赏
  • 举报
回复
query4.Close;
query4.SQL.Add('delete from RYFYHZ');
query4.ExecSQL;

query4.Close;
query4.SQL.Clear;
query4.sql.Add('insert into RYFYHZ (name,SL,ZSF,DL,ZDF,JS)');
query4.SQL.Add(' select name,sum(B3),sum(B4),sum(C3),sum(C4),JS from jf');
query4.SQL.Add('group by name');
query4.ExecSQL;



query4.Close;
query4.SQL.Add('select sum(SL),sum(ZSF),sum(DL),sum(ZDF),JS');
query4.SQL.Add(' from RYFYHZ');
query4.Open;
kristy811203 2006-11-22
  • 打赏
  • 举报
回复
现在他提示怎么一段错误,信息如下:
Project wy.exe raised exception class EDBEngineError with message 'Invalid use of keyword.
Token:select
Line Number:4'.Process stopped.Use Step or Run to continue.


我在我上面的代码下面有这么一段代码会不会是他引起的?

ryfyhztb.Append;
ryfyhztb.fieldbyname('SL').AsFloat:=query4.Fields[0].Value;
ryfyhztb.fieldbyname('ZSF').AsFloat:=query4.Fields[1].Value;
ryfyhztb.fieldbyname('DL').AsFloat:=query4.Fields[2].Value;
ryfyhztb.fieldbyname('ZDL').AsFloat:=query4.Fields[3].Value;
ryfyhztb.fieldbyname('JS').AsString:=query4.Fields[4].Value;
ryfyhztb.fieldbyname('name').AsString:='合计';
ryfyhztb.Post;
ryfyhztb.Close;
ryfyhztb.Open;

query4.Close;
query4.SQL.Clear;
query4.SQL.Add('select * from RYFYHZ');
query4.Open;
end;
jerryxjm 2006-11-21
  • 打赏
  • 举报
回复
把SQL语句贴出来吧
StarRains 2006-11-21
  • 打赏
  • 举报
回复
你的Sql语句写错了 every simple field in projectors must be in GROUP BY

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧