我在一家软件公司工作,将客户的数据库从第三方软件转换为我们的软件。因此,我的SQL知识非常小众,所以如果这是一个愚蠢的问题我会道歉。我试图找到回答这个的东西,但似乎有很多种东西可以导致这个错误,虽然我不一定精通搜索这些类型的问题。
我正在尝试以我们的格式填充表格,并且连接了大约6个表(源数据与各种映射表之间)。我的查询运行得非常好,并且意识到我需要将我的记录分成两次扫描,并添加:
AND A.AP_PAID_AMT = 0
这是我原始查询的唯一区别,并给了我旧的
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to float.
当我只是运行
SELECT * FROM AP_ITEMS2 A WHERE A.AP_PAID_AMT = 0
我得到了结果。 AP_PAID_AMT
是十进制(16,2)。我尝试过各种各样的事情,例如添加ISNULL(A.AP_PAID_AMT,0)
,将值转换并转换为各种数据类型等等。奇怪的是,如果你做了它<> 0它工作正常。
我可以发布整个查询,如果它有用,但认为它可能更受限于数据类型和功能。
提前致谢。