у меня есть три таблицыSQL Server: зарегистрируйся на 4-5 таблиц с различными структурами
- Сотрудник
- ApprovalMatrix
- ExpenseMatrix
Employee
содержит:
ID CompanyId Name
---------------------------------------
9 1 ABC
10 1 XYZ
11 1 WEW
ApprovalMatrix
содержит:
ID Module Employeeid EmployeeLeaderId
--------------------------------------------
11 M1 9 11
12 M1 10 11
13 M2 9 11
55 M3 10 11
56 M2 10 11
ExpenseMatrix
содержит:
ID Employeeid EmployeeLeaderId
--------------------------------------------
11 10 9
12 11 9
Ожидаемый результат:
Module EmployeeName EmployeeLeaderName
--------------------------------------------
M1 ABC WEW
M1 XYX WEW
M2 ABC WEW
M3 XYZ WEW
M2 XYZ WEW
Expense XYZ ABC
Expense WEW ABC
Как это у меня есть 4-5 различных таблиц необходимо объединить все таблицы Employee мудр, также необходимо модуль имя, для которого назначен руководитель модуля.
Ниже запрос я пытался до сих пор
select
C.Module, A.Employeeid, B.Name
from
Employee B
join
ExpenseMatrix A on A.EmployeeLeaderId = B.Id
join
ApprovalMatrix C on C.EmployeeLeaderId = B.Id
where
B.EmpStatus = 1 and A.EmployeeId = 56
В чем проблема, пожалуйста, объясните немного больше? – Anil
Сторона примечания: вы должны использовать ** более значимый ** псевдоним таблицы - просто A, B и C действительно не помогают - используйте 'Employee E',' ExpenseMatrix EM' и 'ApproachMatrix AM', и ваши условия JOIN становятся много clearer: 'на EM.EmployeeLeaderId = E.Id' и т. д. –
последние две записи ожидаются от союза, а не объединения – Horaciux