存储过程里的计算是business_in_menoy = goods_cost * goods_in_num 但是提示错误时“运算符为 multiply,类型为 nvarchar”,何解?
business_in_menoy的数据类型是menoy,goods_cost的数据类型是menoy,goods_in_num的数据类型是int
请帮帮忙,究竟应该如何改

解决方案 »

  1.   

     declare @a int,@b money,@c money
     select @a=2,@b=2.3
     set @c=@a*@b
     select @c
     /*
     ---------------------
    4.60(1 行受影响)
    */
    类型测试没问题,估计是其它问题。
      

  2.   

    应该是字段中有一个是nvarchar类型.用企业管理器查查看
      

  3.   

    内容全是数字,而且我设置的数据类型分别都是int,menoy的
      

  4.   

    business_in_menoy = convert(money,goods_cost) * convert(int,goods_in_num )这样试试看
      

  5.   


    内容不能说明问题。要看表字段的定义。如果设置的数据类型分别都是int,money,那不可能出这个问题的,除非SQLServer出严重BUG了。如果LZ用SQLServer2005,在SSMS中选定表名按Alt+F1,看相应字段对应的数据类型。实在不行,把表的CREATE语句贴出来看看。