一家公司正在更改他们的数据库系统,并且我负责准备数据从源数据库转到目标数据库。其中一个领域需要的是年薪,并且将从货币数据类型转换为格式“99999.999999”的数据类型。TSQL我不明白算术溢出错误将货币转换为数值
我假设类似下面的工作。它首先检查该人是否是小时,然后放入0.否则,使用AnnlSal列并格式化6个精度点。
UPDATE #SalaryInfo
SET AnnSalary = (SELECT CASE WHEN SalaryorHourly = 'H' THEN CONVERT(decimal(11,6), 0)
ELSE CONVERT(decimal(11,6), AnnlSal)
END
FROM <table>
WHERE <table>.Emp = #SalaryInfo.EmpNo
这是给我“算术溢出错误转换为数据类型数字货币。”我看到This SO answer,但我不明白为什么我仍然有问题。
谢谢你的时间!
尝试数字(11,6)。有可能AnnlSal值不适合十进制(11,6)。尝试在AnnlSal上运行MAX()和MIN() – IgorM
@IgorM Nope,同样的错误:/ –
@ JCark4321,您是否尝试在AnnlSal上运行MAX()和MIN()? – IgorM