表中有一个“编号”字段,其中5,6两位表示的是“部门”,我想按这两位分组统计数据,但无论怎样试验都没成功,请各位帮忙。
我的代码是:
 query1.sql.add('select sum(奖金) from gz group by substring(编号,5,2)');
总是报“substring(编号,5,2)”是无效的关键字。是我的代码写错了吗?

解决方案 »

  1.   

    试一下
    把substring(编号,5,2)负值给s 
    query1.sql.add('select sum(奖金) from gz group by'+ 's');
      

  2.   

    不知编号字段中还有什么信息,若编号字段中的5,6 位可唯一决定部门的话, 
    可改为:
    query1.sql.add('select sum(奖金) from gz group by 编号);
      

  3.   

    把5,6两个字符搞成计算字段可以吗,再group by?? 没试过。
      

  4.   

    代码没有错,至少在sql server中能,应该是
    1你的数据库不支持吧
    2可能是你的字段定义有问题
      

  5.   

    query1.sql.add('select substring(编号,5,2) as 部门,sum(奖金) from gz group by substring(编号,5,2)');
      

  6.   

    access中似乎没有substring函数阿
    你可以用
    select sum(奖金) from gz group by right(left(编号,6),2)
      

  7.   

    怎么办?还是不行!
    就连:query1.sql.add('select substring(编号,5,2) as 部门,sum(奖金) from gz');
    都通过不了!
    提示信息是:Porject Project1.exe raised exception class EDBEngineErroe with message 'Invalid use of keyword.Token:,5,2)
      

  8.   

    1、你是什么数据库?SUBSTRING是SQL Server、VFP等数据库中的关键字,Access中并不支持,只有类似的Left/Right函数
    2、你是通过什么方式连接?BDE/ODBC/DAO/ADO?
      

  9.   

    是一个:.db文件!但Left/Right也不行!