У меня есть 3 разных утверждения в моем наборе данных.
ClaimStatus
может быть только 1 или 0. Это означает, что открыто (0) или закрыто (1).
Как устранить те претензии, которые имеют последние ClaimStatus = 1
.
Я пытался использовать функцию Last_Value
в своем предложении WHERE
, но получил ошибку:
Оконные функции могут толькопоявляются в предложениях SELECT или ORDER BY
Результат запроса должен возвращать только Claim2
, поскольку ClaimStatus
все еще открыто:
код:
declare @TempTable table
(
ClaimNumber varchar(50),
ActivityID int,
Activity varchar(50),
ActivityDate datetime,
ClaimStatus int
)
insert into @TempTable
values ('Claim1', 0, 'ClaimCreated', '2018-05-04 10:58:56.510', 0),
('Claim1', 4, 'ReserveCreated', '2018-05-09 09:52:52.327', 0),
('Claim1', 6, 'PaymentCreated', '2018-05-15 13:17:47.920', 0),
('Claim1', 8, 'ClaimClosed', '2018-11-01 10:53:00.087', 1),
('Claim2', 0, 'ClaimCreated', '2018-05-04 10:58:56.510', 0),
('Claim2', 4, 'ReserveCreated', '2018-05-09 09:52:52.327', 0),
('Claim2', 6, 'PaymentCreated', '2018-05-15 13:17:47.920', 0),
('Claim3', 0, 'ClaimCreated', '2018-05-04 10:58:56.510', 0),
('Claim3', 4, 'ReserveCreated', '2018-05-09 09:52:52.327', 0),
('Claim3', 6, 'PaymentCreated', '2018-05-15 13:17:47.920', 0),
('Claim3', 8, 'ClaimClosed', '2018-11-01 10:53:00.087', 1)
select *
from @TempTable
where LAST_VALUE(ClaimStatus) over (partition by ClaimNumber order by ActivityDate desc) <> 1