Комплексное условие отбора
Задача:
У нас есть ФизЛица у которых есть кадровая история
В кадровой истории хранятся места работы, дата устройства и увольнения и тип трудоустройства
Типов всего 2: "Основное" и "Совмещение"
Нам необходимо получить текущее т.е. где дата увольнения пустая и оно либо основное, либо совмещение
Но так же у нас есть ситуации, с 2-мя текущими местами работы (это 2 записи в таблице для одного физЛица), как правило 1-е Основное и 2-е Совмещение
Всего у нас 3 случая: Основное, Основное и Совмещение (2 записи в таблице) и только Совмещение
В первых 2 случаях нам нужно только основное, а в последнем разумеется берем совмещение
Проблема
У меня не выходит получить только основное трудоустройство во 2-ом случае, он получает 2 записи и получается дубликат, который нам не нужен
По сути условие звучит так: Получать текущее Основное трудоустройство, но если его нету, то Совмещение.
У нас всегда должно быть только одно физлицо с одним трудоустройством
Ниже вырезка из кода с самим условием
FROM [ELMA3].[dbo].[FizicheskieLica] as fz
INNER JOIN FizicheskieLica_KadrovayaIst AS kadr ON kadr.Parent = fz.Id
AND ((kadr.TipTrudoustroystva = 'Основное') AND (kadr.TipTrudoustroystva <> 'совмещение'))
OR ((kadr.TipTrudoustroystva <> 'Основное') AND (kadr.TipTrudoustroystva = 'совмещение'))
AND (kadr.DataUvoljneniya >= CAST(GETDATE() AS DATE) OR kadr.DataUvoljneniya is null)
Есть идея реализовать XOR, но я не знаю как это сделать и насколько он тут подойдет
Возможно вы знаете как тут можно вы уже сталкивались с подобной ситуацией и знаете подходящие инструменты