2017-10-07 1 views
0

여기 내 질문입니다. 나는 어디에서 시작해야할지조차 모르겠다. 각 직원의 이름, 성 및 직위와 상사의 이름, 성 및 직책을 기재하십시오. 관리자가없는 직원은 관리자 값에 대해 null을 가져야합니다. 수퍼바이저에 대한 열만 별칭 (toSuperFirst, SuperLast 및 SuperTitle); 열은 FirstName, LastName, Title, SuperFirst, SuperLast 및 SuperTitle로 정렬해야합니다.SQL 쿼리 Ailas 문제

Here's the ER Diagram

+1

귀하의 노력을 공유하십시오. 그렇지 않으면 숙제가 완료되지 않습니다. –

답변

0

여기 질문은 무엇인가 :

여기 ER 다이어그램입니까? 함께 일할 명확한 질문을하십시오. 예제 다음은 참조 용입니다.

LEFT 가입 모두 감독관이있는 모든 결과와 그렇지 않은 모든 결과가 표시됩니다. 그렇지 않은 것은 "S. *"열에 NULL 값을 갖습니다. 그것은 당신이 필요로하는 것을 성취해야합니다.

SELECT FirstName, LastName, Title, S.FirstName AS SuperFirst, S.LastName AS SupertLast, S.Title AS SuperTitle 
FROM dbo.Employee E 
LEFT JOIN dbo.Employee S ON E.ReportsTo = S.EmployeeID 
+0

죄송합니다 (질문) 여기에. "각 직원의 이름, 성 및 직위와 상사의 이름, 성 및 직위를 기재하고 감독자가없는 직원은 상사 가치에 대해 null을 지정해야합니다. 감독자의 열만 별칭 SuperFast, SuperLast , andSuperTitle; 열의 순서는 FirstName, LastName, Title, SuperFirst, SuperLast 및 SuperTitle입니다. " –

+0

그게 내 모든 주요 문제는 내 관리자의 특성을 보지 못하기 때문에 직원과 감독자를 어떻게 연관시키는 지 이해할 수 없다는 것입니다. –

+0

ER 다이어그램에서 수퍼바이저 테이블을 볼 수 없으며 필드의 이름이 명확하지 않아 테이블 관계가 명확하지 않습니다. 예 : 직원 테이블이 고객 테이블에 연결된 경우 직원 테이블의 기본 키는 "ID"이고 고객 테이블의 외래 키는 "직원 ID"로 표시됩니다. 그것은 일반적인 SQL 표준입니다. –

0

Employee 자기 조인은 다음과 같이 자체적으로 참조합니다.

SELECT emp.FirstName 
    ,emp.LastName 
    ,emp.Title 
    ,super.FirstName as SuperFirst 
    ,super.LastName as SuperLast 
    ,super.Title as SuperTitle 
FROM employee emp 
LEFT JOIN employee super ON emp.reportsto = super.EmployeeId 
ORDER BY 1 
    ,2 
    ,3 
    ,4 
    ,5 
    ,6; 

Left join 일치하는 값이 취득되지 않은 경우 감독자 열 null을 둘 것이다.

+0

ORDER BY는이 쿼리에 어떤 영향을 미칩니 까? –

+0

@ JohnW : 질문에, 당신은 FirstName, LastName, Title, SuperFirst, SuperLast 및 SuperTitle로 데이터를 정렬해야한다고 언급했습니다. 그래서 그것은 각각 데이터를 정렬합니다. – zarruq

+0

@ JohnW : "FirstName 열이 모호합니다"와 함께 WA E의 쿼리가 실패합니다. – zarruq