将货币转换为数据类型numeric时发生SQL算术溢出错误

将货币转换为数据类型numeric时发生SQL算术溢出错误,sql,sql-server,Sql,Sql Server,所以在我收到这个错误后,我做了很多测试,看看哪里出了问题 我最后发现是这句话: , Item_Cost / NULLIF(Sale_Price,0) Item_Cost_Percent Item_成本和Sale_价格都是货币,但我假设当Sale_价格为0且SQL试图将Item_成本除以NULL时会发生此错误?这是对的还是不应该影响它 解决这个问题的最好办法是什么 奇怪的是我之前的代码中几乎有一行 , Royalty_Cost / NULLIF(Sale_Price,0) as Unit_Ro

所以在我收到这个错误后,我做了很多测试,看看哪里出了问题

我最后发现是这句话:

, Item_Cost / NULLIF(Sale_Price,0) Item_Cost_Percent
Item_成本和Sale_价格都是货币,但我假设当Sale_价格为0且SQL试图将Item_成本除以NULL时会发生此错误?这是对的还是不应该影响它

解决这个问题的最好办法是什么

奇怪的是我之前的代码中几乎有一行

, Royalty_Cost / NULLIF(Sale_Price,0) as  Unit_Royalty_Cost_Percent
但这一行运行良好,它只在我们到达item_成本行时向我提供错误消息。项目成本和版税成本都是金钱

, CAST (Item_Cost / NULLIF(Sale_Price,0) AS FLOAT ) Unit_Item_Cost_Percent

给我一个将浮点转换为数据类型数字错误的算术溢出错误<代码>单位项目成本百分比是
数字(5,2)
,所以这有点道理,但我不知道为什么转换失败

“单位项目成本百分比是数字(5,2)”是什么意思??这是计算的别名。它如何拥有一个集合数据类型?它被插入另一张桌子了吗?是的,我解决了问题。因为它是5,2,如果我们除以像.01这样的数字,它会溢出,为什么你要除以零呢?