2016-06-28 4 views
0

이것은 대답이 불가능할 수도 있지만 최선을 기하고 있습니다. 나는 전문가와 거리가 멀고 전임자에게서이 질문을 받았다. 나는이 오류에 대해 조사한 결과, 내가 무엇을 놓쳤는 지 알 수 없다는 것을 이해하고 있습니다.멀티 파트 식별자 "C.C_CRNT_STAT_CD"를 바인딩 할 수 없습니다.

원본 쿼리의 각 변경 사항에 *********이 추가되었습니다. 나는 아래의 쿼리 O를 현장 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

CASE_CAS 테이블에 C_CRNT_STAT_CD 열이 있는지 묻기 위해서입니까? – Sam

+0

이 내부 쿼리'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')? 추가 한 컬럼이'CASE_CAS' 테이블에 있는지 확인하기 만하면됩니다. – Eric

답변

2

별칭 C는 하위 쿼리의 일부입니다. 방금 zSTANCSPED1와 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 *를 피하고 필요한 열을 명시 적으로 나열하는 것이 좋습니다.

+0

축하해. 너는 나를 때린다. – Sam

+0

모든 조합 쿼리에 변경 사항을 적용하는 것을 잊지 마라. – yelxe

+0

고맙습니다. –

0

오우 ..이게 간단했습니다. 상위 선택 쿼리에서 zSTANCSPED1.C_CRNT_STAT_CD가 필요합니다

+0

어리석은 질문에 사과드립니다. 나는 C.C_CRNT_STAT_CD가 ZSTANCSPED 테이블에 있어야한다고 생각했지만 그렇지 않습니다. 고맙습니다. –

관련 문제