2016-06-28 95 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表中,而不是。谢谢。 –

相关问题