下面的SQL在以下情况下正常工作:为什么SQL Server SELECT语句在SET语句内工作,但自行失败?
USE ThisDB
UPDATE guest.TABLE2
SET this_var = (SELECT count(T1.key_field)
FROM ThisDB..TABLE1 T1
WHERE T1.key_field = guest.TABLE2.keyfield
AND T1.date_field between (DATEADD(DAY, -7, guest.TABLE2.other_date)) and guest.TABLE2.other_date)
然而,对自己,对SELECT
声明(见下文)失败,错误
多部分组成的标识符“guest.TABLE2。关键字段'不能被绑定。 (4104)
SELECT
count(T1.key_field)
FROM
ThisDB..TABLE1 T1
WHERE
T1.key_field = guest.TABLE2.keyfield
AND T1.date_field BETWEEN (DATEADD(DAY, -7, guest.TABLE2.other_date))
AND guest.TABLE2.other_date
因为您未在您的select语句中加入guest.Table2。 –
这被称为* correlation *。内部查询与外部查询相关联。 – shawnt00
您已选择一个答案作为正确答案,但未回答您的原始问题 –