Я пытаюсь извлечь одно значение состояния из таблицы, которая может получить несколько строк для одного сотрудника. Временные таблицы не вариант. Я надеялся на другой метод, кроме нескольких объединений.
select ID, ActiveCode from Employees where CyrNyr = ('C' or 'N') and StatusCode = (1 or 2)
Полученный активный код должен быть либо A, либо I (активный или неактивный). Я смотрю на 2 столбца, чтобы определить результирующий активный код. Код состояния 1 активен, код состояния 2 неактивен. CYR / NYr (текущий год или следующий год) будет иметь значение C или N. У каждого сотрудника может быть строка с C, или N, или с обоими (максимум 2 строки). Я хотел бы одну строку с активным кодом A или I на основе одной или двух строк сотрудника следующим образом:
- Два ряда, C с 1 или N с 1 (или оба) = A
- Один ряд C с 1 = A
- Один ряд N с 1 = A
- Два ряда, C с 2 и N с 2 = I
- Один ряд C с 2 = I
У работника не было бы ни одной строки N с 2.