完整的错误消息是这一个:子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。我能找到的所有东西都只是说“是的,只要使用TOP 1就可以了”,只是我没有一个子查询或一个选择语句。SSMS错误:子查询返回了多个值...但没有子查询
这里的查询:
update f
set f.new_monthnumber = datediff(mm, dateadd(dd, dbo.ufn_GetDaysInMonth(a.new_opendate) - 16, a.new_opendate), f.new_submit_date) + 1
from FilteredAccount a
left outer join FilteredNew_Financials f on f.new_name = a.accountnumber
where f.new_monthnumber is null
ufn_GetDaysInMonth是一个用户定义的函数,分析传递给它的日期,不查询数据库中的所有,在任何情况下,我已经证实,它不通过在没有它的情况下运行查询导致错误的原因。
有人知道这里发生了什么?
嗨,如果你完全删除在赋值右边的嵌套的datediff它工作正确吗? – 2011-02-06 23:31:57
刚刚尝试过,实际上没有。 – extarbags 2011-02-06 23:37:44
但是,如果您删除整个datediff和联接,并且只能在桌面上运行,它应该正常工作?对于我记得SQL 2005仍然不喜欢用这种结构更新命令,而SQL 2008没有问题。 – 2011-02-06 23:43:06