2016-06-28 97 views
0

這可能無法回答,但我希望最好。我離專家很遠,並接受了我的前任的這個問題。我研究了長度上的這個錯誤,我明白這意味着什麼,我無法弄清楚我錯過了什麼。無法綁定多部分標識符「C.C_CRNT_STAT_CD」

我在原始查詢的每個更改後添加了*********。我試圖添加字段C.C_CRNT_STAT_CD tØ下面的查詢,並獲得

error: Lookup Error - SQL Server Database Error: The multi-part identifier "C.C_CRNT_STAT_CD" could not be bound.

我將不勝感激任何幫助,非常感謝你提前。

SELECT DISTINCT 
    zSTANCSPED1.CSPED_LAST_NM, 
    zSTANCSPED1.CSPED_FIRST_NM, 
    zSTANCSPED1.CSPED_MIDDLE_NM, 
    zSTANCSPED1.CSPED_SSN, 
    zSTANCSPED1.CSPED_DOB, 
    zSTANCSPED1.CSPED_STUDY_ID, 
    zSTANCSPED1.CSPED_RA_DATE, 
    zSTANCSPED1.P_CSE_EXTID, 
    zSTANCSPED1.C_CASE_EXTID, 
    zSTANCSPED1.CC_COURT_CASE_EXTID, 
    SUP.S_ACTV_NM_CD, 
    SUP.S_TYPE_CD, 
    SUP.S_SUPR_LVL, 
    C.C_CRNT_STAT_CD,****************** 
    CASE WHEN (SUP.S_STRT_TS LIKE '%1900%') OR (SUP.S_STRT_TS LIKE '%1901%') 
    THEN NULL 
    ELSE CONVERT(DATETIME, SUP.S_STRT_TS, 108) 
    END AS 'S_STRT_TS', 
    CASE WHEN (SUP.S_END_TS LIKE '%1900%') OR (SUP.S_END_TS LIKE '%1901%') 
    THEN NULL 
    ELSE CONVERT(DATETIME, SUP.S_END_TS, 108) 
    END AS 'S_END_TS', 
    SUP.S_SUPR_DESC 

FROM 
(SELECT * FROM zSTANCSPED 
LEFT JOIN (SELECT PD.P_PRTCP_ID,PD.SSN_SOC_SECURE_NUM,PD.P_CSE_EXTID, 
PD.BI_BIRTH_DT 
FROM PARTICIPANT_DEMOGRAPHIC PD) PD 
ON zSTANCSPED.CSPED_SSN = PD.SSN_SOC_SECURE_NUM 
AND zSTANCSPED.CSPED_DOB = PD.BI_BIRTH_DT 

LEFT JOIN (SELECT CP.CP_PRTCP_ID,CP.CP_CASE_ID,CP.CP_ROLE_CD 
FROM CASE_PARTICIPANT CP 
WHERE CP.CP_STAT_CD <> 'OBS') CP 
ON CP.CP_PRTCP_ID = PD.P_PRTCP_ID 

LEFT JOIN (SELECT C.MTH_YR,C.CAS_CASE_ACCT_SUM_ID,C.C_CASE_ID,C.C_CASE_EXTID,C.C_MNG_CNTY_FIPS_CD,C.C_CRNT_STAT_CD************* 
FROM CASE_CAS C 
WHERE (C.C_CRNT_STAT_CD <> 'obs')) C 
ON CP.CP_CASE_ID = C.C_CASE_ID 

LEFT JOIN (SELECT CCC.CCC_CASE_ID,CC.CC_COURT_CASE_EXTID, 
LA.LA_FILE_DT,LA.SO_HLTH_INSURE_ORDR_CD, CC_COURT_CASE_ID,LA_COURT_CASE_ID,LA.LA_LEGL_ACTV_ID 
     FROM CASE_COURT_CASE CCC 
     JOIN COURT_CASE AS CC 
     ON CC.CC_COURT_CASE_ID = 
     CCC.CCC_COURT_CASE_ID 
     JOIN LEGAL_ACTIVITY AS LA 
     ON LA.LA_COURT_CASE_ID = 
     CC.CC_COURT_CASE_ID AND LA.LA_LGL_ACTV_TYPE_CD = 'SUP' 
     AND LA.LA_STAT_CD = 'ACT' 
     ) AS LA 
     ON LA.CCC_CASE_ID = C.C_CASE_ID) zSTANCSPED1 

JOIN SUPPRESSION SUP 
ON zSTANCSPED1.CP_PRTCP_ID = SUP.S_PRTCP_ID 


UNION 
SELECT DISTINCT 
    zSTANCSPED1.CSPED_LAST_NM, 
    zSTANCSPED1.CSPED_FIRST_NM, 
    zSTANCSPED1.CSPED_MIDDLE_NM, 
    zSTANCSPED1.CSPED_SSN, 
    zSTANCSPED1.CSPED_DOB, 
    zSTANCSPED1.CSPED_STUDY_ID, 
    zSTANCSPED1.CSPED_RA_DATE, 
    zSTANCSPED1.P_CSE_EXTID, 
    zSTANCSPED1.C_CASE_EXTID, 
    zSTANCSPED1.CC_COURT_CASE_EXTID, 
    SUP.S_ACTV_NM_CD, 
    SUP.S_TYPE_CD, 
    SUP.S_SUPR_LVL, 
    C.C_CRNT_STAT_CD,************** 
    CASE WHEN (SUP.S_STRT_TS LIKE '%1900%') OR (SUP.S_STRT_TS LIKE '%1901%') 
    THEN NULL 
    ELSE CONVERT(DATETIME, SUP.S_STRT_TS, 108) 
    END AS 'S_STRT_TS', 
    SUP.S_END_TS, 
    SUP.S_SUPR_DESC 
    FROM 
(SELECT * FROM zSTANCSPED 
LEFT JOIN (SELECT PD.P_PRTCP_ID,PD.SSN_SOC_SECURE_NUM,PD.P_CSE_EXTID, 
PD.BI_BIRTH_DT 
FROM PARTICIPANT_DEMOGRAPHIC PD) PD 
ON zSTANCSPED.CSPED_SSN = PD.SSN_SOC_SECURE_NUM 
AND zSTANCSPED.CSPED_DOB = PD.BI_BIRTH_DT 

LEFT JOIN (SELECT CP.CP_PRTCP_ID,CP.CP_CASE_ID,CP.CP_ROLE_CD 
FROM CASE_PARTICIPANT CP 
WHERE CP.CP_STAT_CD <> 'OBS') CP 
ON CP.CP_PRTCP_ID = PD.P_PRTCP_ID 

LEFT JOIN (SELECT C.MTH_YR,C.CAS_CASE_ACCT_SUM_ID,C.C_CASE_ID,C.C_CASE_EXTID,C.C_MNG_CNTY_FIPS_CD,C.C_CRNT_STAT_CD************** 
FROM CASE_CAS C 
WHERE (C.C_CRNT_STAT_CD <> 'obs')) C 
ON CP.CP_CASE_ID = C.C_CASE_ID 

LEFT JOIN (SELECT CCC.CCC_CASE_ID,CC.CC_COURT_CASE_EXTID, 
LA.LA_FILE_DT,LA.SO_HLTH_INSURE_ORDR_CD, CC_COURT_CASE_ID,LA_COURT_CASE_ID,LA.LA_LEGL_ACTV_ID 
     FROM CASE_COURT_CASE CCC 
     JOIN COURT_CASE AS CC 
     ON CC.CC_COURT_CASE_ID = 
     CCC.CCC_COURT_CASE_ID 
     JOIN LEGAL_ACTIVITY AS LA 
     ON LA.LA_COURT_CASE_ID = 
     CC.CC_COURT_CASE_ID AND LA.LA_LGL_ACTV_TYPE_CD = 'SUP' 
     AND LA.LA_STAT_CD = 'ACT' 
     ) AS LA 
     ON LA.CCC_CASE_ID = C.C_CASE_ID) zSTANCSPED1 

JOIN SUPPRESSION SUP 
ON zSTANCSPED1.C_CASE_ID = SUP.S_CASE_ID 

UNION 
SELECT DISTINCT 
    zSTANCSPED1.CSPED_LAST_NM, 
    zSTANCSPED1.CSPED_FIRST_NM, 
    zSTANCSPED1.CSPED_MIDDLE_NM, 
    zSTANCSPED1.CSPED_SSN, 
    zSTANCSPED1.CSPED_DOB, 
    zSTANCSPED1.CSPED_STUDY_ID, 
    zSTANCSPED1.CSPED_RA_DATE, 
    zSTANCSPED1.P_CSE_EXTID, 
    zSTANCSPED1.C_CASE_EXTID, 
    zSTANCSPED1.CC_COURT_CASE_EXTID, 
    SUP.S_ACTV_NM_CD, 
    SUP.S_TYPE_CD, 
    SUP.S_SUPR_LVL, 
    C.C_CRNT_STAT_CD,*************** 

    CASE WHEN (SUP.S_STRT_TS LIKE '%1900%') OR (SUP.S_STRT_TS LIKE '%1901%') 
    THEN NULL 
    ELSE CONVERT(DATETIME, SUP.S_STRT_TS, 108) 
    END AS 'S_STRT_TS', 
    SUP.S_END_TS, 
    SUP.S_SUPR_DESC 
FROM 
(SELECT * FROM zSTANCSPED 
LEFT JOIN (SELECT PD.P_PRTCP_ID,PD.SSN_SOC_SECURE_NUM,PD.P_CSE_EXTID, 
PD.BI_BIRTH_DT 
FROM PARTICIPANT_DEMOGRAPHIC PD) PD 
ON zSTANCSPED.CSPED_SSN = PD.SSN_SOC_SECURE_NUM 
AND zSTANCSPED.CSPED_DOB = PD.BI_BIRTH_DT 

LEFT JOIN (SELECT CP.CP_PRTCP_ID,CP.CP_CASE_ID,CP.CP_ROLE_CD 
FROM CASE_PARTICIPANT CP 
WHERE CP.CP_STAT_CD <> 'OBS') CP 
ON CP.CP_PRTCP_ID = PD.P_PRTCP_ID 

LEFT JOIN (SELECT C.MTH_YR,C.CAS_CASE_ACCT_SUM_ID,C.C_CASE_ID,C.C_CASE_EXTID,C.C_MNG_CNTY_FIPS_CD,C.C_CRNT_STAT_CD************* 
FROM CASE_CAS C 
WHERE (C.C_CRNT_STAT_CD <> 'obs')) C 
ON CP.CP_CASE_ID = C.C_CASE_ID 

LEFT JOIN (SELECT CCC.CCC_CASE_ID,CC.CC_COURT_CASE_EXTID, 
LA.LA_FILE_DT,LA.SO_HLTH_INSURE_ORDR_CD, CC_COURT_CASE_ID,LA_COURT_CASE_ID,LA.LA_LEGL_ACTV_ID 
     FROM CASE_COURT_CASE CCC 
     JOIN COURT_CASE AS CC 
     ON CC.CC_COURT_CASE_ID = 
     CCC.CCC_COURT_CASE_ID 
     JOIN LEGAL_ACTIVITY AS LA 
     ON LA.LA_COURT_CASE_ID = 
     CC.CC_COURT_CASE_ID AND LA.LA_LGL_ACTV_TYPE_CD = 'SUP' 
     AND LA.LA_STAT_CD = 'ACT' 
     ) AS LA 
     ON LA.CCC_CASE_ID = C.C_CASE_ID) zSTANCSPED1 

JOIN SUPPRESSION SUP 
ON zSTANCSPED1.LA_COURT_CASE_ID = SUP.S_COURT_CASE_ID 
+0

只是爲了問您確定C_CRNT_STAT_CD列是否存在CASE_CAS表中? – Sam

+0

你可以運行這個內部查詢:SELECT CAST_CAS C WHERE(C.C_CRNT_STAT_CD <>'obs')'?只是想確保您添加的列存在於表CASE_CAS中。 – Eric

回答

2

別名C是你的子查詢的一部分。這可能有助於顯示結構:

FROM 
(
    SELECT * 
    . 
    . 
    . 
     LEFT JOIN 
    (
     SELECT 
      C.MTH_YR, 
      C.CAS_CASE_ACCT_SUM_ID, 
      C.C_CASE_ID, 
      C.C_CASE_EXTID, 
      C.C_MNG_CNTY_FIPS_CD, 
      C.C_CRNT_STAT_CD --************* 
     FROM CASE_CAS AS C 
     WHERE(C.C_CRNT_STAT_CD <> 'obs') 
    ) AS C ON CP.CP_CASE_ID = C.C_CASE_ID 
     LEFT JOIN 
    . 
    . 
    . 
) AS zSTANCSPED1 
    JOIN SUPPRESSION AS SUP ON zSTANCSPED1.CP_PRTCP_ID = SUP.S_PRTCP_ID 
    . 
    . 
    . 

命名zSTANCSPED1子查詢具有SELECT *,所以它看起來像你應該能夠只是zSTANCSPED1更換C.。

它超出了你的要求,但我建議避免SELECT *並明確列出你需要的列。

+0

大聲笑..你打我吧 – Sam

+0

不要忘記應用所有聯合查詢的變化。 – yelxe

+0

謝謝你。 –

0

ohh來吧..這很簡單。在頂部選擇查詢中,它需要是zSTANCSPED1.C_CRNT_STAT_CD

+0

我爲這個愚蠢的問題表示歉意。我認爲C.C_CRNT_STAT_CD必須在ZSTANCSPED表中,而不是。謝謝。 –

相關問題