これらのエラーが発生し続けます:
メッセージ 4104、レベル 16、状態 1、行 80 マルチパート識別子「t.flngKey」をバインドできませんでした。メッセージ 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
これは、後でリストされた t2 テーブルではなく、t テーブルに対して結合を残したために機能しました。何を結合するかを指定することはできますが、結合するテーブルが必ずしも決定されるわけではありません。この場合、FROM で t が宣言された後のすべての後続のコード行は結合であるため、それらはすべて同じテーブル t を参照します。コンマは、結合しているテーブルを判断するのに役立つことがわかりました。t2 を宣言する直前までコンマがないことに注意してください。