我不断收到这些错误:
Msg 4104,级别 16,状态 1,第 80 行 多部分标识符 无法绑定"t.flngKey"。Msg 4104,级别 16,状态 1,第 81 行 无法绑定多部分标识符"t.flngKey"。消息 4104, 级别 16,状态 1,第 82 行 多部分标识符 无法绑定"t.flngAccountKey"。
SELECT t.flngKey AS flngTaskKey,
t.fstrAccountType,
t.fstrTaskSource,
CASE t.fstrCategory
WHEN '' THEN ''
ELSE t.fstrTaskSource + '_CAT_' + t.fstrCategory
END AS fstrCategory,
CASE
WHEN t.fstrType = '' THEN ''
WHEN wd.fstrWorkType = 'SUSIN1'
AND wd.fstrOwner = ' '
AND wd.flngworkkey = wr.flngworkkey
AND wr.fstrAccountType <> '007'
AND wr.fblnOpen = 1
AND EXISTS
(SELECT 1
FROM tblIndicator id
WHERE id.fstrIndicator = 'EIWTCH'
AND id.flngVer = 0
--AND fdtmCease > @pdtmRunDate
AND id.flngAccountKey = wd.flngAccountKey)
THEN 'Suspended for Audit Indicator - EIC Watch For'
ELSE t.fstrTaskSource + '_TYP_' + t.fstrType
END AS fstrType,
CASE t.fstrStage
WHEN '' THEN ''
ELSE t.fstrTaskSource + '_STG_' + t.fstrStage
END AS fstrStage,
ISNULL(t.fdtmFilingPeriod, '31-Dec-9999') AS fdtmFilingPeriod,
t.flngKey,
t.flngAccountKey,
t.flngCustomerKey,
'' AS fstrReturnStatus,
t.fdtmCreated,
t2.fdtmOldestCreated,
ISNULL(l.fstrCode,
ISNULL(lr.fstrPOCode, '')) AS fstrPOCode,
1 AS flngCount,
CASE t.fstrAssignedTo
WHEN '' THEN 'Unassigned'
ELSE 'Assigned'
END AS fstrAssigned,
(SELECT t3.fstrOwner
FROM t3
WHERE t3.fstrUser = t.fstrAssignedTo) AS fstrOwner,
(SELECT t3.fstrSBU
FROM t3
WHERE t3.fstrUser = t.fstrAssignedTo) AS fstrUnit
FROM tblTaskOpen t with (nolock) LEFT OUTER JOIN WIS_GTIMG.DBO.TBLImgCaseToImage ci with (NOLOCK)
ON t.flngkey = ci.flngCaseKey
AND t.fstrTaskSource = 'CASE' LEFT OUTER JOIN WIS_GTIMG.DBO.TBLImgIndex i with (NOLOCK)
ON ci.flngimagekey = i.flngimagekey
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN WIS_GTEXT.DBO.tblWI_LevyResponse l with (NOLOCK)
ON i.fstrIndexId = l.fstrDLN
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN WIS_GTEXT.DBO.TBLWI_letterResponses lr with (NOLOCK)
ON i.fstrindexid = lr.fstrDLN
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 ,
t2
LEFT OUTER JOIN tblWorkToReturn wr
ON t.flngKey=wr.flngWorkKey LEFT OUTER JOIN tblWorkDetail wd **-- THE ERRORS REFER TO THESE LINES**
ON t.flngKey=wd.flngWorkKey LEFT OUTER JOIN tblIndicator id
ON (t.flngAccountKey=id.flngAccountKey AND id.fstrIndicator='EIWTCH')
WHERE t.fstrCategory <> 'ABC'
AND t.fstrCategory = t2.fstrCategory
AND t.fstrType = t2.fstrType
AND NOT EXISTS (SELECT 'xyz'
FROM tblaudit a
WHERE a.flngAuditkey = t.flngKey
AND a.fblnPosted = 1
AND t.fstrTaskSource = 'aud')
谢谢大家的帮助!
--编辑:找到解决方案--
我用它来帮助 无法绑定多部分标识符
我编辑了代码,看起来像这样
FROM tblTaskOpen t with (nolock) LEFT OUTER JOIN WIS_GTIMG.DBO.TBLImgCaseToImage ci with (NOLOCK)
ON t.flngkey = ci.flngCaseKey
AND t.fstrTaskSource = 'CASE' LEFT OUTER JOIN WIS_GTIMG.DBO.TBLImgIndex i with (NOLOCK)
ON ci.flngimagekey = i.flngimagekey
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN WIS_GTEXT.DBO.tblWI_LevyResponse l with (NOLOCK)
ON i.fstrIndexId = l.fstrDLN
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN WIS_GTEXT.DBO.TBLWI_letterResponses lr with (NOLOCK)
ON i.fstrindexid = lr.fstrDLN
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN tblWorkToReturn wr
ON t.flngKey=wr.flngWorkKey LEFT OUTER JOIN tblWorkDetail wd
ON t.flngKey=wd.flngWorkKey LEFT OUTER JOIN tblIndicator id
ON (t.flngAccountKey=id.flngAccountKey AND id.fstrIndicator='EIWTCH'),
t2
这让它工作了,因为它在 T 表上留下了连接,而不是后面列出的 T2 表。 即使您可以指定要联接的内容,这些也不一定能确定它联接在哪个表上。 在这种情况下,由于在 FROM 中声明 t 之后的所有后续代码行都是连接, 它们都引用同一个表,T.我发现逗号有助于确定它正在连接哪个表。请注意,在声明 T2 之前没有逗号。
你应该检查 tblTaskOpen table。字段 flngKey 和 flngAccountKey 在那里不存在。
我用它来帮助 无法绑定多部分标识符
我编辑了代码,看起来像这样
FROM tblTaskOpen t with (nolock) LEFT OUTER JOIN WIS_GTIMG.DBO.TBLImgCaseToImage ci with (NOLOCK)
ON t.flngkey = ci.flngCaseKey
AND t.fstrTaskSource = 'CASE' LEFT OUTER JOIN WIS_GTIMG.DBO.TBLImgIndex i with (NOLOCK)
ON ci.flngimagekey = i.flngimagekey
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN WIS_GTEXT.DBO.tblWI_LevyResponse l with (NOLOCK)
ON i.fstrIndexId = l.fstrDLN
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN WIS_GTEXT.DBO.TBLWI_letterResponses lr with (NOLOCK)
ON i.fstrindexid = lr.fstrDLN
AND i.fstrindextype = 'DLN'
AND i.fblnValid = 1 LEFT OUTER JOIN tblWorkToReturn wr
ON t.flngKey=wr.flngWorkKey LEFT OUTER JOIN tblWorkDetail wd
ON t.flngKey=wd.flngWorkKey LEFT OUTER JOIN tblIndicator id
ON (t.flngAccountKey=id.flngAccountKey AND id.fstrIndicator='EIWTCH'),
t2
这让它工作了,因为它在 T 表上留下了连接,而不是后面列出的 T2 表。 即使您可以指定要联接的内容,这些也不一定能确定它联接在哪个表上。 在这种情况下,由于在 FROM 中声明 t 之后的所有后续代码行都是连接, 它们都引用同一个表,T.我发现逗号有助于确定它正在连接哪个表。请注意,在声明 T2 之前没有逗号。