У меня есть таблица журнала в SQL Server.Таблица структурирована следующим образом:
Unique ProblemID ResponsibleID AssignedToID ProblemCode
155 155 0282 4
156 155 0900
157 155 3
158 155 0147 1
159 159 0111 2
160 159 0333 4
161 159 0900 1
Таким образом, в основном мы регистрируем все проблемы и кто был ответственным / должен был решить проблему.Мне нужен запрос, который определил бы, в каких проблемах участвовал один человек:
Например:
- Лицо с ID 0900 участвовало как в 155, так и в 159.
- Человек с ID 0282 участвовал только в 155 человеке.
- Человек с ID 0333 был вовлечен только в 159.
Также я забыл упомянуть, что мне нужно отфильтровать последний рядProblemID от кода проблемы.Например, найдите problemID, где человек вовлечен, но там код проблемы в последней строке журнала этой проблемы равен 1 (что означает, что проблема теперь закрыта).
Кроме того, я работал с запросом:
select ProblemID, EntryTime, ResponsibleID, ProblemCode, AssignedToID
from (select ProblemID, EntryTime, ResponsibleID, ProblemCode, AssignedToID,
row_number() over(partition by ProblemID order by EntryTime desc) as rn
from myTable) as T
where rn = 1 and ResponsibleID = '00282' OR AssignedToID = '00282'
and veiksmoid <> 4
Однако он соответствует ТОЛЬКО последним строкам.