저는 현재 MS SQL Server 2012에서 복잡한 T-SQL 쿼리를 작업 중입니다. 기본적으로 ProjectId와 StaffVersionId를 보유한 기본 프로젝트 목록을 검색합니다 (원하지만 직원이 프로젝트 전체에서 변경 될 수 있습니다. 그것은 경우가 아닙니다 : P).
CREATE TABLE #BasicProjects
(
ProjectId INT
, StaffVersionId INT
)
다음으로 ProjectData 테이블에 조인하여 프로젝트 제목을 가져오고 직원 테이블에 조인하여 직원의 FullName을 가져와야합니다.
SELECT [P].ProjectId
, [PD].Label AS Title
, [E].Lastname + '' '' + Firstname AS Manager
, [E].Lastname + '' '' + Firstname AS Contact
FROM #BasicProjects [P]
INNER JOIN [MySchema].[ProjectData] [PD] ON [PD].ProjectDataId = [P].ProjectDataId
INNER JOIN [MySchema].[Staff] [Y] ON [Y].StaffVersionId = [P].StaffVersionId AND [Y].StaffTypeId = 3 // Manager
INNER JOIN [MySchema].[Staff] [X] ON [X].StaffVersionId = [P].StaffVersionId AND [X].StaffTypeId = 2 // Contact
INNER JOIN [dbo].[Employee] [E] ON [E].EmployeeId = [Y].EmployeeId
INNER JOIN [dbo].[Employee] [E] ON [E].EmployeeId = [X].EmployeeId
두 종류의 직원 직원 3 = 관리자, 2 = 연락처가 있기 때문에 쿼리가 다소 어렵습니다.
내 쿼리를 실행할 때이 오류가 발생합니다.
상관 명 'E'는 FROM 절에서 여러 번 지정됩니다.
이 오류를 해결하는 방법을 알고 있습니까? 아니면이 쿼리를 개선하는 방법에 대한 조언이 있습니까?
감사합니다!
각 조인에 대해 다른 별칭이 필요합니다 (에서했던 것처럼 Staff
)
SELECT [P].ProjectId
, [PD].Label AS Title
, [YE].Lastname + ' ' + YE.Firstname AS Manager
, [XE].Lastname + ' ' + XE.Firstname AS Contact
FROM #BasicProjects [P]
INNER JOIN [MySchema].[ProjectData] [PD] ON [PD].ProjectDataId = [P].ProjectDataId
INNER JOIN [MySchema].[Staff] [Y] ON [Y].StaffVersionId = [P].StaffVersionId AND [Y].StaffTypeId = 3 // Manager
INNER JOIN [MySchema].[Staff] [X] ON [X].StaffVersionId = [P].StaffVersionId AND [X].StaffTypeId = 2 // Contact
INNER JOIN [dbo].[Employee] [YE] ON [YE].EmployeeId = [Y].EmployeeId
INNER JOIN [dbo].[Employee] [XE] ON [XE].EmployeeId = [X].EmployeeId
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다