하나의 테이블에서 T-SQL 다중 조인

TimHorton

저는 현재 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 절에서 여러 번 지정됩니다.

이 오류를 해결하는 방법을 알고 있습니까? 아니면이 쿼리를 개선하는 방법에 대한 조언이 있습니까?

감사합니다!

SqlZim

각 조인에 대해 다른 별칭이 필요합니다 (에서했던 것처럼 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다중 테이블 조인 내에서 null / 중복 제거를 허용 하시겠습니까? T-SQL

분류에서Dev

SQL Server : 3 개의 테이블을 조인하고 각 테이블에서 하나의 열을 sum ()합니다.

분류에서Dev

Oracle SQL에서 다중 값 열로 테이블을 조인하는 방법

분류에서Dev

테이블 A의 5 개 열, 테이블 B의 2 개 열, SQL Server 조인에서 다시 테이블 A의 나머지 열을 표시하는 방법

분류에서Dev

다른 테이블에서 2 개의 SQL 쿼리 조인

분류에서Dev

SQL Server 내부 조인은 하나의 테이블에서만 결과를 가져옵니다.

분류에서Dev

다중 테이블에서 SQL 조건부 조인을 수행하는 방법은 무엇입니까?

분류에서Dev

SQL 다중 테이블 조인 하위 쿼리

분류에서Dev

where 절을 사용하여 동일한 테이블에 SQL 다중 조인

분류에서Dev

SQL Server 2008에서 행을 열로 변경하는 방법 (다중 테이블, 조인 등)

분류에서Dev

조인 된 테이블의 SQL에서 ID 당 하나의 결과 반환

분류에서Dev

테이블의 SQL Server 다중 조건

분류에서Dev

SQL LEFT JOIN은 각 조인에 대해 하나의 테이블에 대한 링크를 포함하여 여러 테이블을 조인합니다.

분류에서Dev

두 번째 테이블이 중복 된 하나의 테이블을 조인하는 SQL 쿼리

분류에서Dev

SQL 다중 테이블 조인 쿼리

분류에서Dev

하나의 SQL 테이블에서 모든 것을 조인하고 다른 테이블에서 처음 발생하여 첫 번째 테이블에서 모두 유지하는 방법

분류에서Dev

SQL : 다른 테이블에서 일치하는 조상과 조인 (내부 조인)

분류에서Dev

다른 테이블에서 여러 필드를 조인하기위한 SQL 문?

분류에서Dev

EF6의 다 대다 조인 테이블에서 하나의 열 반환

분류에서Dev

조인되는 테이블이 유니온에있는 테이블 중 하나 인 두 테이블의 유니온에서 왼쪽 조인 수행

분류에서Dev

다른 서버의 SQL 조인 테이블 및 가져 오기 테이블 SSMS

분류에서Dev

SQL에서 조인 쿼리를 사용하여 세 번째 테이블이있는 두 개의 다른 테이블에서 두 개의 열 수 검색

분류에서Dev

하나의 테이블을 다른 테이블에서 참조하는 효율적인 방법

분류에서Dev

SQL : 두 번째 테이블에서 중복을 제외한 테이블 조인

분류에서Dev

SQL의 다중 테이블에서 다중 계산

분류에서Dev

SQL에서 3 개의 테이블을 조인하는 방법

분류에서Dev

UPDATE의 다른 테이블을 참조하는 한 테이블에서 가장 높은 순서로 SQL 순서

분류에서Dev

다른 테이블에 조인 될 때 하나의 테이블 업데이트

분류에서Dev

SQL 테이블을 조인하여 조인 된 테이블에없는 레코드를 선택합니다.

Related 관련 기사

  1. 1

    다중 테이블 조인 내에서 null / 중복 제거를 허용 하시겠습니까? T-SQL

  2. 2

    SQL Server : 3 개의 테이블을 조인하고 각 테이블에서 하나의 열을 sum ()합니다.

  3. 3

    Oracle SQL에서 다중 값 열로 테이블을 조인하는 방법

  4. 4

    테이블 A의 5 개 열, 테이블 B의 2 개 열, SQL Server 조인에서 다시 테이블 A의 나머지 열을 표시하는 방법

  5. 5

    다른 테이블에서 2 개의 SQL 쿼리 조인

  6. 6

    SQL Server 내부 조인은 하나의 테이블에서만 결과를 가져옵니다.

  7. 7

    다중 테이블에서 SQL 조건부 조인을 수행하는 방법은 무엇입니까?

  8. 8

    SQL 다중 테이블 조인 하위 쿼리

  9. 9

    where 절을 사용하여 동일한 테이블에 SQL 다중 조인

  10. 10

    SQL Server 2008에서 행을 열로 변경하는 방법 (다중 테이블, 조인 등)

  11. 11

    조인 된 테이블의 SQL에서 ID 당 하나의 결과 반환

  12. 12

    테이블의 SQL Server 다중 조건

  13. 13

    SQL LEFT JOIN은 각 조인에 대해 하나의 테이블에 대한 링크를 포함하여 여러 테이블을 조인합니다.

  14. 14

    두 번째 테이블이 중복 된 하나의 테이블을 조인하는 SQL 쿼리

  15. 15

    SQL 다중 테이블 조인 쿼리

  16. 16

    하나의 SQL 테이블에서 모든 것을 조인하고 다른 테이블에서 처음 발생하여 첫 번째 테이블에서 모두 유지하는 방법

  17. 17

    SQL : 다른 테이블에서 일치하는 조상과 조인 (내부 조인)

  18. 18

    다른 테이블에서 여러 필드를 조인하기위한 SQL 문?

  19. 19

    EF6의 다 대다 조인 테이블에서 하나의 열 반환

  20. 20

    조인되는 테이블이 유니온에있는 테이블 중 하나 인 두 테이블의 유니온에서 왼쪽 조인 수행

  21. 21

    다른 서버의 SQL 조인 테이블 및 가져 오기 테이블 SSMS

  22. 22

    SQL에서 조인 쿼리를 사용하여 세 번째 테이블이있는 두 개의 다른 테이블에서 두 개의 열 수 검색

  23. 23

    하나의 테이블을 다른 테이블에서 참조하는 효율적인 방법

  24. 24

    SQL : 두 번째 테이블에서 중복을 제외한 테이블 조인

  25. 25

    SQL의 다중 테이블에서 다중 계산

  26. 26

    SQL에서 3 개의 테이블을 조인하는 방법

  27. 27

    UPDATE의 다른 테이블을 참조하는 한 테이블에서 가장 높은 순서로 SQL 순서

  28. 28

    다른 테이블에 조인 될 때 하나의 테이블 업데이트

  29. 29

    SQL 테이블을 조인하여 조인 된 테이블에없는 레코드를 선택합니다.

뜨겁다태그

보관