У меня есть ситуация здесь, и мне нужно это исправить. У меня есть две основные таблицы
Персонал и ActualAdvanceDetails,
В ActualAdvanceDetails есть два типа 0 и 1, что означает, что 0 является фактическим, а 1 - авансовым.
Это сохраненные данные моей таблицы фактических авансов
EmployeeId Type RefNo Id
623 0 7 1
623 1 7 2
623 0 8 3
623 1 8 4
623 1 9 5
так вот результат моего запроса
IdEMPLOYEE NAMEPOSITIONId RefNo Id RefNo
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 1 7 2 7
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 1 7 4 8
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 1 7 5 9
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 3 8 2 7
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 3 8 4 8
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 3 8 5 9
должно быть
Id EMPLOYEE NAME POSITION Id RefNo Id RefNo
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 1 7 2 7
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 3 8 4 8
623 Aguil , Noli Barona UNDERCARRIAGE Welder / Fabricator 5 9
Вот мой запрос
SELECT
Per.[EmployeeId]
,CONCAT(GI.LastName, ' ', GI.NameExtension,', ', GI.FirstName,' ', GI.MiddleName) AS EmployeeName
,S.GroupDescription As Section
,Pos.PositionName As Position
,AC.Id
,AC.ReferenceNo
,AD.Id
,AD.ReferenceNo
FROM [FGCIJOROSystemDB].[dbo].[Personnels] AS Per
LEFT JOIN Sections As S ON S.Id = Per.SectionId
LEFT JOIN FGCIHRDMasterlistSystemDB.dbo.EmployeesInformations AS EI ON EI.Id = Per.EmployeeId
LEFT JOIN FGCIHRDMasterlistSystemDB.dbo.GeneralInformations AS GI ON GI.Id = EI.GeneralInformationsId
LEFT JOIN FGCIHRDMasterlistSystemDB.dbo.Positions As Pos ON Pos.Id = EI.PositionsId
LEFT JOIN ActualAdvanceDetails AS AC ON AC.EmployeeId = Per.EmployeeId AND AC.Type = 0
LEFT JOIN ActualAdvanceDetails AS AD ON AD.EmployeeId = Per.EmployeeId AND AD.Type = 1
WHERE S.IsChecklistGroup = 1
ORDER BY S.GroupDescription, GI.LastName