表A 表B
insert into #A (SYSTEMDATE,DEBIT,REALINAMOUNT)      
select INDATE,0,convert(decimal(12,2),REALINAMOUNT)  from B
会报错:
Implicit conversion from datatype 'VARCHAR' to 'DECIMAL' is not allowed.  Use the CONVERT function to run this query. 数据库是sybase
是我写错了 还是不允许
不允许该怎么办呢?  
跪求

解决方案 »

  1.   

    SYSTEMDATE,DEBIT,REALINAMOUNT --> 看哪个字段是DECIMAL型的,对应的值要先用convert做数据类型转换.
      

  2.   

    create table #FXIANJIN ( REALINAMOUNT decimal(12,2)  null,
             DEBIT decimal(12,2) null,
                             SYSTEMDATE datetime null,
                             REMARK varchar(16) null,
                             BALANCE varchar(16) null         )
    insert into #FXIANJIN (SYSTEMDATE,DEBIT,REALINAMOUNT)      
    select INDATE,0,convert(decimal(12,2),REALINAMOUNT)  from B
    临时表需要decimal型   B表中的REALINAMOUNT是varchar型
      

  3.   

    查B表REALINAMOUNT字段的值,应该是有含字母/符号之类的内容,转换为decimal时出错了. select REALINAMOUNT from B
      

  4.   

    不可能的。 肯定都是数字
    报错是:隐式转换从数据类型的VARCHAR”到“十进制”是不允许的。使用转换函数来运行这个查询。
      

  5.   

    先试试这个查询语句能执行正常吗? select INDATE,0,convert(decimal(12,2),REALINAMOUNT) from B
      

  6.   

    是我下面还union all 两个表   问题出在下面字段的 我没有转换  
    分给你了   谢谢了 爱死你了