我在脚本中有这个sql块:
update #Result
Set FacilityTotals = 'Facility Total: IS Needed Yes: ' +
(select count(ISNeeded_YN)
from #ISReview C, #Result R
where CustomerID = C.CustomerID and ISNeeded_YN = 'Y') +
' No: ' +
(select count(ISNeeded_YN)
from #ISReview C
where CustomerID = C.CustomerID and ISNeeded_YN = 'N') +
' IS Yes: ' +
(select count(IS_YN)
from #Result C
where CustomerID = C.CustomerID and IS_YN = 'Y') +
' No: ' +
(select count(IS_YN)
from #Result C
where CustomerID = C.CustomerID and IS_YN = 'N')
当我尝试运行它时,我收到以下错误:
Msg 209,Level 16,State 1,Line 500
不明确的列名称'CustomerID'。
Msg 209,Level 16,State 1,Line 500
不明确的列名'ISNeeded_YN' Msg 209,Level 16,State 1,Line 500
不明确的列名'ISNeeded_YN'。
ISNeeded_YN
位于#isReviewTable
,而CustomerID
位于两个表中。我对这种类型的sql很陌生,我该怎么写呢?
答案 0 :(得分:4)
您需要在列前添加表名。
例如,
这篇文章。
CustomerID = C.CustomerID
它知道右侧来自#IsReview,但它不知道左侧使用哪个表。这可能是显而易见的,但是sql只知道你在多个表上有那个列而且它不知道该怎么做。
R.CustomerID = C.CustomerID
会在该特定位置为您解决问题。
您需要在引用多个表中使用的列时执行此操作。