Paradox数据表有一个“编号”字段,其中5,6两位表示的是“部门”,我想按这两位分组统计数据,但无论怎样试验都没成功,请各位帮忙。
我的代码是:
 query1.sql.add('select substring(编号,5,2),sum(奖金) from gz group by substring(编号,5,2)');提示信息是:Porject Project1.exe raised exception class EDBEngineErroe with message 'Invalid use of keyword.Token:,5,2)另外:
我的e-mail是:[email protected](牡丹江医学院杨宇军)
希望能结交几个朋友,相互学习,互相交流。

解决方案 »

  1.   

    试试这个:substring(编号 from 5 for 7),
      

  2.   

    试试这个:substring(编号 from 5 for 2),
      

  3.   

    谢谢linzhisong(無聊)
    系统报告不支持!还是不行。
      

  4.   

    substring(编号,5,2),sum(奖金) from gz group by substring(编号,5,2)
    我用的sqlserver,查询分析器中的sql语句正确,结果正确!但不知你的paradox是否能通过!
      

  5.   

    这里还是要数据库函数吧:
    在oracle里:
    query1.sql.add(
    'select substring(编号,5,2),sum(奖金) from gz group by substr(编号,5,2)');
      

  6.   

    Paradox不支持substring(编号,5,2)')看看帮助,应有其它的写法
      

  7.   

    快翻遍了整个帮助,也没有找到在Paradox中怎样使用类似substring(编号,5,2)')这样的函数!
    难道这个问题真的不能解决了吗?
      

  8.   

    SELECT sum(ydl)
    FROM khsf
    GROUP BY substring(编号,5,2);
    绝对行,我试过了
      

  9.   

    我原来使用的是access数据库,其实我的表是动态产生的,使用access时,不知道如何定义小数位,(试了很多中方法都没能成功,所以才改用p的),现在又出现这个问题了!
    我做的是个单机版的小软件,没必要使用SQL Server数据库,现在不知道该怎么办了!!!
    真是急死了!!!!!
      

  10.   

    试一试 left(right(编号,5),2)
      

  11.   


    query1.sql.add('select substring(编号 from 5 for 2),sum(奖金) from gz group by substring(编号 from 5 for 2)');在DataBaseDeskTop中的帮助查,可以知道Substring的用法就是这样!
      

  12.   

    paradox不支持substring(编号,5,2)这种写法
      

  13.   

    主要是:group by substring(编号 from 5 for 2)通不过!(系统报:不支持)
      

  14.   

    另外,我还想问一个问题,报表输出时,怎样不输出数字0?
    (我原来记得:QRDBtext有个DisplayFormat属性,现在找不到了)
      

  15.   

    P中好象GROUP BY 后面不支持表达式的写法!
    请各位高手继续帮忙,想办法!
      

  16.   

    Paradox 表不支持substring函数。要另行解决。
    ...
    query1.sql.add('select 编号,奖金 from gz ');
    query1.open;
    query1.first;
    with temptable do 
    begin
      tablename:='sss';
      databasename:=query1.databasename;
      fielddefs.clear;
      with fielddefs do 
      begin
        add('BH',ftstring,10,False);
        add('JJ',ftfloat,0,False);
        Add('Dep',ftstring,2,False);
     
      end;
    createTable;
    for i:=0 to  fielddefs.count-1 do 
     Fielddefs[i].CreateField(temptable);
    open;
    end;
    with  query1 do 
    begin
      while not eof do 
      begin
        temptable.append;
        temptable.fieldbyname('BH').asstring:=Fieldbyname('编号').asstring;
        temptable.fieldbyname('JJ').asstring:=Fieldbyname('奖金').asstring;
        temptable.fieldbyname('Dep').asstring:=Copy(Fieldbyname('编号').asstring,5,2);
        temptable.post;
        next;
      end;
    end;
    Query1.close;
    Query1.sql.text:='select sum(JJ)  As 奖金,BH As 编号  from sss group by dep ' 
    Query1.open;
    ................
    试试。
      
    .sql.add('select 编号,奖金 from gz  ');
    ...
      

  17.   

    zjy6631(刘阿木) 你好:
      首先,谢谢你。
      这几天大家都在帮我想办法,但一直没能把问题解决。后来我我也就换个思路来考虑这个问题。
    我们两个的思路基本相似,我是用SQL中修改结构的命令增加一个原表中增加临时字段,再用copy函数将“编号分解”添加到新字段中,再使用select...group by ** 实现的。
    不过我在想Delphi中怎么不能实现自己提供P数据库,更强的功能呢?到此问题就算结束吧,不要揪住这一点不放了,“人无完人吗?”结帐!!!