1

これらのエラーが発生し続けます:

メッセージ 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 を宣言する直前までコンマがないことに注意してください。

4

2 に答える 2

0

マルチパート識別子をバインドできませんでした

コードを次のように編集しました

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 を宣言する直前までコンマがないことに注意してください。

于 2013-11-06T20:47:46.587 に答える