2017-11-30 2 views
0

4 테이블, detail_table, adders_table, form_table 및 summary_table이 있습니다 첫 번째 3 개 테이블에는 공통 열 piece_ID가 있지만 네 번째 테이블에는 summary_table에 Piece_ID 열이 없습니다. 대신 주소와 양식 테이블에없는 세부 테이블에만있는 ID 열이 있습니다. 이제는이 4 개의 테이블을 모두 결합 할 수있는 방법이 있습니까?일반적인 열이없는 네 번째 테이블에 가입하는 방법

(양식, 주소 및 세부 테이블 만 요약에 합류했습니다.) 다음은 3 개의 테이블이있는 쿼리이며이 결과가 성공적입니다. 내가 경우

Msg 207, Level 16, State 1, Line 8 
Invalid column name 'jobID'. 
Msg 209, Level 16, State 1, Line 1 
Ambiguous column name 'prod_code'. 
Msg 209, Level 16, State 1, Line 2 
Ambiguous column name 'seq_number'. 
Msg 209, Level 16, State 1, Line 2 
Ambiguous column name 'process_date'. 
Msg 207, Level 16, State 1, Line 2 
Invalid column name 'archive_Free_Form2'. 

제발 올바른 :

Select archive_address.PieceID, archive_adf_detail.Job_ID, prod_code, 
seq_number,process_date, seq_queue, addline1, addline2,addline3,addline4,addline5, archive_freeform.free_form1, archive_Free_Form2 
from archive_Address join archive_adf_detail 
on archive_address.PieceID = archive_adf_detail.F_key 
join archive_freeform 
on archive_address.PieceID = archive_freeform.PieceID 
Where (archive_Address.addline1 like '%Cons%' 
or archive_Address.addline2 like '%Cons%') 
and archive_Address.pieceID like '%FB2K%' 
order by addline1 

나는 내가 오류가 아래 얻고 이상 실행 한 후이

Select archive_address.PieceID, archive_adf_detail.Job_ID, prod_code, job_summary.Status_Date, 
seq_number,process_date, seq_queue, addline1, addline2,addline3,addline4,addline5, archive_freeform.free_form1, archive_freeform.Free_Form2 
from archive_Address join archive_adf_detail 
on archive_address.PieceID = archive_adf_detail.F_key 
join archive_freeform 
on archive_address.PieceID = archive_freeform.PieceID 
join job_summary 
on archive_adf_detail.job_ID = job_summary.job_ID 
Where (archive_Address.addline1 like '%Cons%' 
or archive_Address.addline2 like '%Cons%') 
and archive_Address.pieceID like '%FB2K%' 
order by addline1 

와 4 표를 추가하는 쿼리 아래 사용하고 있습니다 잘못된 구문을 사용하거나 이와 같은 네 번째 테이블에 참여할 수 없습니다. 감사합니다!

+1

예. . . 공통 열을 사용하여 테이블을 조인하십시오. –

+0

그러나 요약 테이블에는 나머지 3에있는 공통 열이 없습니다. 대신에 다른 테이블에있는 상세 테이블에만있는 열이 있습니다. 4 번째 테이블 (요약 테이블)에 가입하는 동안 오류가 발생합니다 – Gurjit

+0

편집하십시오 오류 메시지를 추가하여 질문. 또한 데이터베이스 엔진을 지정하십시오. –

답변

0

쿼리가 나타내는 관계에 따라 테이블을 조인합니다. 조인은 괜찮습니다.

오류는 열 이름이 테이블 모음 사이에서 고유하지 않음과 관련이 있습니다 (모호성 : 여러 의미 있음). 열 이름이있는 테이블을 지정해야합니다.

Select 
    archive_address.PieceID, 
    archive_Address.addline1, 
    archive_Address.addline2, 
    archive_Address.addline3, 
    archive_Address.addline4, 
    archive_Address.addline5, 
    archive_adf_detail.prod_code, 
    archive_adf_detail.seq_number, 
    archive_adf_detail.process_date, 
    archive_adf_detail.seq_queue, 
    archive_freeform.Job_ID, 
    archive_freeform.free_form1, 
    archive_freeform.Free_Form2, 
    job_summary.Status_Date 
From archive_Address 
Join archive_adf_detail on archive_address.PieceID = archive_adf_detail.F_key 
Join archive_freeform on archive_address.PieceID = archive_freeform.PieceID 
Join job_summary on archive_freeform.job_ID = job_summary.job_ID 
Where (archive_Address.addline1 like '%Cons%' or archive_Address.addline2 like '%Cons%') 
and archive_Address.pieceID like '%FB2K%' 
Order by archive_Address.addline1 

질문의 오류 메시지가 두 번째 쿼리와 일치하지 않으므로 스키마를 전달한 것이 확실하지 않습니다. 은 데이터의 위치와 원하는 부분을 이해해야합니다.

+0

첫 번째 쿼리 외에도 status_date 인 하나의 열을 추가하고 네 번째 테이블을 추가했습니다. job_summary join job_summary on archive_adf_detail.job_ID = job_summary.jobID – Gurjit

+0

어떤 열이 어떤 테이블에 속합니까? 네가 말해주지 않으면 너의 스키마를 모른다. – Caleth

+0

미안 나의 나쁜 첫번째 테이블 이름 다음 열 이름 Archive_address (PieceID Addline1 Addline2 Addline3 Addline4 Addline5)이다 (PieceID prod_code seq_number process_date seq_queue), archive_freeform archive_adf_detail (조각 ID 작업 ID free_form1 Free_Form2), job_summary (job_id Satus_date) – Gurjit

관련 문제