Sql server 存储过程的执行失败
我对下面的程序有异议 错误是: Msg 402,16级,状态1,程序获取格式化银行对账单,第行 87在减法运算符中,数据类型nvarchar和nvarchar不兼容 更改这些声明:Sql server 存储过程的执行失败,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,我对下面的程序有异议 错误是: Msg 402,16级,状态1,程序获取格式化银行对账单,第行 87在减法运算符中,数据类型nvarchar和nvarchar不兼容 更改这些声明: @NewBalance nvarchar(150), @PreviousBalance nvarchar(150); 到 感谢大家的支持和分享 我能够克服这个问题,通过将我有小数点18,2的所有区域的数据类型更改为money。变量@OpeningBalance Decimal18,2被更改为@OpeningBa
@NewBalance nvarchar(150),
@PreviousBalance nvarchar(150);
到
感谢大家的支持和分享 我能够克服这个问题,通过将我有小数点18,2的所有区域的数据类型更改为money。变量@OpeningBalance Decimal18,2被更改为@OpeningBalance money 对@DebitRecord、@CreditRecord、@NewBalance、@PreviousBalance也是如此
同样,“合并”用于计算新余额,方法是合并以前的余额、贷记记录和借记记录。为什么数字存储为字符串?正如您所发现的,这只会导致问题。最好对货币类型的值使用至少四位小数,因此我建议使用小数20,4,以符合OP可能过度使用小数18,2的情况。
@NewBalance nvarchar(150),
@PreviousBalance nvarchar(150);
@NewBalance DECIMAL(10,2),
@PreviousBalance DECIMAL(10,2);