我的ACCESS库中table1表的field1字段是文本类型,但实际内容是货币值,我不想更改库,我该怎么写sum语句求其总和并让结果仍为文本类型呢?sum函数除了能对数值型求和外,还能适用于哪些呢?Currency类型可以吗?

解决方案 »

  1.   

    用一个函数转换以下不就得了
    在DELPHI中,用strtoint()
      

  2.   


     
      在DELPHI中,用strtoint()
      
     
      

  3.   

    我使用的试SQL2000 我的解决办法是在查询语句中使用:
    SUM(CAST(StudentID AS integer))
    你可以参照修改一下!
      

  4.   

    可以在CalcFields事件裡面寫代碼,轉換成real後自動相加,最後在轉換成string就ok了
      

  5.   

    xthmpro_cn朋友:
       我写的SQL语句: select SUM(CAST(StudentID AS integer)) from table2 
       但执行的结果出错。
    x_qiang朋友:
       我不知道怎么做,请具体指点最好给个例子,谢谢!
      

  6.   

    定義一個全局變量 var mysum: real;
    CalcFields事件begin
      mysum:=mysum+strtofloat(query1.fieldbyname('yourfield').asstring);
    end最後在你用mysum的時候轉換成string就ok了
      

  7.   

    對了,上面的代碼可能只在打開的時候能正確的出結果
    如果要對相關操作需要計算合計,可以加一個計算子段,比如tmp1
    calcfields事件
    tmp1.value:=strtofloat(query1.fieldbyname('yourfield').asstring)
      

  8.   

    又忘了一句,合計的時候對tmp1進行合計
      

  9.   

    select sum(convert(int,yourfield)) from yourtable
      

  10.   

    如果你的字段是字符型,且都为整数:SELECT Sum(int(field)) FROM  yourtable;一句话搞定
      

  11.   

    首先我想问一下楼主:terrace (tyxi) 
    在你发这个贴子时有没有试过?
    我的结论是这样的:
    Access 2000 ->新建数据库->新建表->字段名称:aa 数据类型:文本.
    输入数值:12.3,14.3,15.7.
    新建查询语句如下:
    SELECT Sum(aa) FROM [text];
    运行结果如下:42.3
    不知结果是否正确?
    只要你的字段中的所有记录是能被正确转换的话,上面的语句就可以执行.否则你的记录中就含有无法被转换的字符!
      

  12.   

    最条的办法一条条记录的遍历: sum:=sum+fieldbyname(???).asflat;next;
    或者
    用数据库函数:oracle里:
    select sum(to_number(fieldname)) from tablename;