使用“where [field] = 0”

时间:2016-10-01 00:37:13

标签: sql-server type-conversion

我在一家软件公司工作,将客户的数据库从第三方软件转换为我们的软件。因此,我的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它工作正常。

我可以发布整个查询,如果它有用,但认为它可能更受限于数据类型和功能。

提前致谢。

0 个答案:

没有答案