当我运行一段程序的时候,提示如下错误信息:
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.
请问这是什么引起的,应该如何解决。

解决方案 »

  1.   

    你的Sql语句写错了 every simple field in projectors must be in GROUP BY
      

  2.   

    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;
      

  3.   

    分组查询, SELECT 中的所有字段, 要么出现在 group by中, 要么必须是统计字段, 而你的SQL jf 字段两组都不是, 可以改为
    group by name, jf
    试试看
      

  4.   

    不好意思,你说的我没有明白,jf是一个表的名称,我没有查询jf表中的所有字段,我只是把学要的查出来了,什么叫统计字段,我不明白,能说明一下吗
    你能说的明白点吗,我刚刚开始学,不怎么懂,谢谢
      

  5.   

    把这句
    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');
      

  6.   

    还有上面的一句我漏了
    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');
      

  7.   

    就是这样的:
    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;
      

  8.   

    现在他提示怎么一段错误,信息如下:
    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;