2
私は現在、MS SQL Server 2012で複雑なT-SQLクエリを処理しています。基本的には、ProjectIdとStaffVersionIdを保持するプロジェクトの基本リストを取得します私はそれが事実でないことを願っていますが、スタッフはプロジェクト全体を通して変化しています:P)。1つのテーブルで複数のT-SQLを結合する
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句内で複数回指定されています。
このエラーを解決する方法はありますか。または、このクエリを改善する方法についてのアドバイスもありますか?
ありがとうございます!
(あなたが
Staff
のためにやったように)それぞれに異なる別名が参加する必要があります!それは確かにそれです!本当にありがとう、素晴らしい週末を過ごす! – TimHorton@TimHorton助けて嬉しいです! – SqlZim