2
我目前正在處理MS SQL Server 2012中的一個複雜的T-SQL查詢。我基本上檢索了一個基本的項目列表,其中包含ProjectId以及StaffVersionId(這是可能的工作人員在整個項目中都會改變,但我希望情況不會如此:P)。T-SQL Multiple Join on 1表
CREATE TABLE #BasicProjects
(
ProjectId INT
, StaffVersionId INT
)
接下來,我需要加入對ProjectData的表來獲得該項目的名稱,以及加入的員工表,以獲得員工的全名。
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
該查詢有點難,因爲我有2種員工僱員3 =經理,2 =聯繫。
當我運行我的查詢,我得到這個錯誤:
在相關名「E」多次指定FROM子句。
你知道如何解決這個錯誤嗎?或者,也許建議如何改善此查詢?
非常感謝!
哈,不錯!確實是這樣!非常感謝,祝你週末愉快! – TimHorton
@TimHorton樂意幫忙! – SqlZim