2013-05-13 3 views
-2

의 여러 부분 식별자 오류가 나는 오류를 얻고있다. 누구든지 도와 줄 수 있습니까?내 SQL 쿼리에서 SQL 쿼리

감사합니다.

select distinct 
    a.HireLastName, a.HireFirstName, a.HireID, a.Position_ID, a.BarNumber, 
    a.Archived, a.DateArchived, b.Position_Name 
from NewHire a, WorkPeriod c 
join Position b on a.Position_ID = b.Position_ID 
where 
    a.Archived = 0 
    and a.HireID = c.HireID 
    and c.InquiryID is not null 
order by 
    a.HireID DESC, a.HireLastName, a.HireFirstName 
+0

'Position_ID'는 (는)'NewHire'에 있습니까? – imthepitts

+2

조인 순서는 반드시 사용자가 작성한 순서대로 구현되는 것은 아닙니다. 잘못된, 이전 스타일의 암시 적 조인과 적절하고 명시적인 조인을 혼합하면 특히 문제가됩니다. a와 b 사이에 쉼표 대신 JOIN을 사용하고 a = c 조건을 on on 절로 이동하십시오. –

+0

@ 그 피핏은 문제가되지 않습니다. 문제는 'b'와 'c'사이의 조인을 시도 할 때 'a'가 존재하지 않는다는 것입니다. 그렇지 않으면'잘못된 열 '이라고 말할 것입니다. –

답변

1

귀하의 코드는 테이블 C에 가입하지 않으므로 귀하의 별칭에 문제가 발생할 수 있습니다. 이것을 시도해 볼 수 있습니까?

select distinct 
    a.HireLastName, 
    a.HireFirstName, 
    a.HireID, 
    a.Position_ID, 
    a.BarNumber, 
    a.Archived, 
    a.DateArchived, 
    b.Position_Name 
from NewHire a 
join Position b on a.Position_ID = b.Position_ID 
join WorkPeriod c on a.hireID = c.HireID 
where a.Archived = 0 and c.InquiryID is not null 
order by a.HireID DESC, a.HireLastName, a.HireFirstName