2014-09-02 2 views
0

나는이 SQL 쿼리에게 그것은 유효한 명령 행 처리기 명령이 아니므로이 명령은 SQL 문으로 처리되었습니다DB2는 SQLSTATE 42972 오류

INSERT INTO 
      AGG_QUALITY 
    SELECT 
      QIF.DATEDM_ID, 
      'Status' AS BREAKDOWN_TYPE, 
      HCR.VALUE, 
      QIF.SCANDEFINITION_ID, 
      QIF.QUALITYISSUE_VALUE, 
      COUNT(QIF.QUALITYISSUEFACT_ID), 
      COUNT(QRF.QUALITYRESOLUTIONFACT_ID) 

    FROM 
      QUALITYISSUEFACT QIF, 
      HUBCODERECORD HCR, 
      ITEMSTATUS ITS 
    LEFT JOIN 
      QUALITYRESOLUTIONFACT QRF 
    ON 
      QIF.QUALITYISSUEFACT_ID = QRF.QUALITYISSUEFACT_ID 
    WHERE 
      QIF.DATEDM_ID > startDateDMId 
      AND  QIF.DATEDM_ID <= endDateDMId  
      AND HCR.CODE = ITS.H_STATUS_TYPE 
      AND QIF.DIMENSION_ROM_PK = ITS.ITEMMASTER_ID 
    GROUP BY 
      QIF.DATEDM_ID, HCR.VALUE, QIF.SCANDEFINITION_ID, QIF.QUALITYISSUE_VALUE 
    ; 

DB21034E을 실행하려고이 오류를 얻고있다. SQL 처리 중에 리턴되었습니다. SQL0338N JOIN 연산자 또는 MERGE 문과 연관된 ON 절이 이 올바르지 않습니다. LINE NUMBER = 31. = 42972

+1

암시 고풍하지 마십시오 도움이된다면

INSERT INTO AGG_QUALITY SELECT QIF.DATEDM_ID, 'Status' AS BREAKDOWN_TYPE, HCR.VALUE, QIF.SCANDEFINITION_ID, QIF.QUALITYISSUE_VALUE, COUNT(QIF.QUALITYISSUEFACT_ID), COUNT(QRF.QUALITYRESOLUTIONFACT_ID) FROM QUALITYISSUEFACT QIF INNER JOIN HUBCODERECORD HCR ON QIF.DIMENSION_ROM_PK = ITS.ITEMMASTER_ID INNER JOIN ITEMSTATUS ITS ON QIF.DIMENSION_ROM_PK = ITS.ITEMMASTER_ID LEFT JOIN QUALITYRESOLUTIONFACT QRF ON QIF.QUALITYISSUEFACT_ID = QRF.QUALITYISSUEFACT_ID WHERE QIF.DATEDM_ID > startDateDMId AND QIF.DATEDM_ID <= endDateDMId GROUP BY QIF.DATEDM_ID, HCR.VALUE, QIF.SCANDEFINITION_ID, QIF.QUALITYISSUE_VALUE ; 

참조하십시오. 아마도 문제가 해결 될 것입니다. 간단한 규칙 :'from' 절의 쉼표에 "No"라고 말하십시오. –

+0

'QUALITYISSUEFACT_ID' 컬럼이'QUALITYISSUEFACT' 테이블과'QUALITYRESOULTIONFACT' 테이블 모두에 존재하는지 확인할 수 있습니까? –

+0

예. 존재합니다. –

답변

0

은 내부에 아래와 같은 시도 SQLSTATE 조인 : 그것은 깨끗하고 현대적인`join` 구문을 사용하여 조인

관련 문제