有一表a
字段为a1,a2,a3,a4
       10 19 5  6
       5  5  7  8我要将a1+a2-a3-a4赋给a5
select a1,a2,a3,a4,a1+a2-a3-a4 as a5 from a
结果怎么乱七八糟的
注:我的a1,a2,a3,a4都是字符型字段。

解决方案 »

  1.   

    相乘可以的
    在select语句中好象没关系的。
      

  2.   

    sql 语句里的我不会,你直接到delphi中来解决吧
      

  3.   

    转换类型不就行了
    用cast 或convert
      

  4.   

    需要将类型转换
    select a1,a2,a3,a4,cast(a1 as int)+cast(a2 as int)- cast(a3 as int)-cast(a4 as int) as a5 from a
      

  5.   

    sqlserver:select a1,a2,a3,a4,cast(a1 as int)+a2-a3-a4 as a5 from a转一个就够了。
      

  6.   

    SQL Server:
    select a1,a2,a3,a4,cast(a1 as int)+a2-a3-a4 as a5 from a
    还有一种类型转化
    select a1,a2,a3,a4,convert(int,a1)+a2-a3-a4 as a5 from a
    如果是在delphi中呢!(如果是在Access中!)
    添加一个计算字段:
      在计算事件中 FieldByName(a1).asintger+FieldByName(a2).asintger-FieldByName(a3).asintger-FieldByName(a4).asintger
      

  7.   

    我用ado+access
    正确答案:
    select cint(a1)+cint(a2)-cint(a3)-cint(a4) from a但不知实数是怎么处理的????????
      

  8.   

    那就换个转换函数,或是用 newnewworm(蜡笔小新)  的方法在计算事件中 FieldByName(a1).asintger+FieldByName(a2).asintger-FieldByName(a3).asintger-FieldByName(a4).asintger
      

  9.   

    oracle中
    select a1,a2,a3,a4,to_NUMBER(a1+a2-a3-a4) from a
    OK 了
      

  10.   

    SQL server和ACCESS是这样的:
    select a1,a2,a3,a4,convert(int,a1)+convert(int,a2)+convert(int,a3)+convert(int,a4) as a5from a
      

  11.   

    select a1,a2,a3,a4,convert(int,a1)+convert(int,a2)+convert(int,a3)+convert(int,a4) as a5 from a
      

  12.   

    access中不认:
    convert和cast
      

  13.   

    正确答案:
    select cint(a1)+cint(a2)-cint(a3)-cint(a4) from a
      

  14.   

    现在的问题是:
    怎么样字符转成实数型?
    cfloat(a1)出错!!!!!!!!!!!!!!!!!!!!!!!!
      

  15.   

    select a1,a2,a3,a4,convert(int,a1)+convert(int,a2)+convert(int,a3)+convert(int,a4) as a5 from a
      

  16.   

    SQL server和ACCESS是这样的:
    select a1,a2,a3,a4,convert(int,a1)+convert(int,a2)+convert(int,a3)+convert(int,a4) as a5from a