Цель следующего запроса состоит в том, чтобы проверить, был ли пользователь завершен в системе вовремя. Таким образом, есть таблица, которая содержит информацию о прекращении работы системы (как и когда пользователь был прекращен) и таблицу с датой завершения работы пользователя. Поскольку существует три способа удаления пользователя, у некоторых пользователей есть несколько записей завершения. В конце концов, я хочу видеть самую последнюю запись до даты ее прекращения, если она вообще была отменена. Все поля Date
являются полями INT.
Текущий запрос:
Select
B.TerminationApproach,
B.SystemTerminationDate,
A.UserName,
A.LastName,
A.FirstName,
A.TerminationDate,
Case
When B.SystemTerminationDate <= A.TerminationDate Then 0
Else 1
End As EvalCheck
From A
Left Join B On B.User = A.UserName
Текущий результат:
TerminationApproach SystemTerminationDate TerminationDate UserNAme LastName FirstName EvalCheck
No profiles 20180301 20180226 AWALL Wall Aaron 1
Locally locked 20181027 20180226 AWALL Wall Aaron 1
Deleted 20180301 20180226 AWALL Wall Aaron 1
No profiles 20180301 20180301 CBLAIR Blair Carlos 0
Locally locked 20181027 20180301 CBLAIR Blair Carlos 1
No profiles 20180301 20180301 CBLAIR Blair Carlos 0
Затем существует третья таблица, которая содержит действия пользователя. Мне нужно сопоставить результаты моего первого запроса с пользовательской активностью, чтобы увидеть, выполнил ли пользователь изменения в системе после даты его завершения. Третья таблица выглядит следующим образом:
UserID Date Activity
AWALL 20180227 Table Change
Итак, в моем примере конечный результат моего запроса должен выглядеть следующим образом:
TerminationApproach SystemTerminationDate TerminationDate UserNAme LastName FirstName EvalCheck ActivityAfterTermination
No profiles 20180301 20180226 AWALL Wall Aaron 1 Yes
No profiles 20180301 20180301 CBLAIR Blair Carlos 0 No