Sql join возвращает только одну строку из левой таблицы
У меня есть следующие таблицы Employee, EmployeeManager, EmployeeLeavesAssigned, EmployeeLeavesTaken, EmployeeLeaveCashed
Employee 1 to Many EmployeeManager (один сотрудник может иметь несколько менеджеров)
Employee 1 to Many EmployeeLeavesAssigned (одна запись для каждого сотрудника в календарном году)
Сотрудник 1 для многих EmployeeLeavesTaken (несколько записей для каждого сотрудника за один календарный год)
Сотрудник 1 для многих EmployeeLeaveCashed (несколько записей для каждого сотрудника за один календарный год)
Теперь, когда я пытаюсь создать SP, чтобы получить список всех листьев, обналиченных сотрудниками
это дает мне дублирующуюся строку для каждой записи в EmployeeLeaveCashed из-за таблицы EmployeeManager
Я использую left join, и левая таблица-EmployeeLeaveCashed, а правые таблицы-Employee & Employee Manager. Даже внятное не помогает.
Что я должен сделать, чтобы устранить эту дублирующуюся строку?
Вот этот запрос
ВЫБИРАТЬ
Эд.RefEmpID как [empid в]
,ED.EmpFirstName
,ED.EmpMiddleName
,ED.EmpLastName
,EMG.RefEMGID AS [ManagerID]
,ELC.RefELCID AS [ELCID]
,ELC.CashedDate
,ELC.CashedCount
,Елка.RefCalendarPeriodID как [платила]
,ELC.PeriodStartDate
,ELC.PeriodEndDate
,LTY.RefLeaveTypeID AS [LTYID]
,LTY.LeaveTypeName
От EmployeeLeaveCashed ELC
Левое соединение CalendarPeriod CP на ELC.RefCalendarPeriod = CP.RefCalendarPeriod
Левое соединение LeaveType LTY на ELC.RefLeaveTypeID = LTY.RefLeaveTypeID
Левое соединение работника на ЭЮК.RefEmpID = Эд.RefEmpID
Левое соединение EmployeeManager ГРП на ЭД.RefEmpID = ЭМГ.Рефемпид
Что я уже пробовал:
Я удалил таблицу EmployeeManager из соединения. Но мне нужно показать имя менеджера. Так что мне нужно иметь в СП.
Jörgen Andersson
Можете ли вы показать нам запрос?
Christopher Fernandes
ВЫБИРАТЬ
Эд.RefEmpID как [empid в]
,ED.EmpFirstName
,ED.EmpMiddleName
,ED.EmpLastName
,EMG.RefEMGID AS [ManagerID]
,ELC.RefELCID AS [ELCID]
,ELC.CashedDate
,ELC.CashedCount
,Елка.RefCalendarPeriodID как [платила]
,ELC.PeriodStartDate
,ELC.PeriodEndDate
,LTY.RefLeaveTypeID AS [LTYID]
,LTY.LeaveTypeName
От EmployeeLeaveCashed ELC
Левое соединение CalendarPeriod CP на ELC.RefCalendarPeriod = CP.RefCalendarPeriod
Левое соединение LeaveType LTY на ELC.RefLeaveTypeID = LTY.RefLeaveTypeID
Левое соединение работника на ЭЮК.RefEmpID = Эд.RefEmpID
Левое соединение EmployeeManager ГРП на ЭД.RefEmpID = ЭМГ.Рефемпид
Maciej Los
Пожалуйста, используйте Улучшить Вопрос[^] виджет и добавить выше содержание.