【发布时间】:2019-04-30 00:47:19
【问题描述】:
我需要为每个 PolicyNumber 创建一行。但是 ClaimStatus 是问题所在。
如果我有超过 1 个 claimCount,那么我需要检查一个 ClaimStatus = 'Open'。
如果其中一个是“打开”,那么对于整个 PolicyNumber,ClaimStatus 中的值需要为 Open,否则为 ClaimStatus = 'Closed'
当前结果如下所示:
PolicyNumber ClaimCount ClaimStatus
---------------------------------------
Pol1 2 Closed
Pol1 2 Open
Pol2 2 Closed
Pol2 2 Closed
Pol3 1 Closed
Pol4 3 Open
Pol4 3 Closed
示例代码:
declare @ClaimsTable table (PolicyNumber varchar(50), ClaimCount int, ClaimStatus varchar(50))
insert into @ClaimsTable
values ('Pol1', 2, 'Closed'), ('Pol1', 2, 'Open'),
('Pol2', 2, 'Closed'), ('Pol2', 2, 'Closed'),
('Pol3', 1, 'Closed'),
('Pol4', 3, 'Open'), ('Pol4', 3, 'Closed')
select * from @ClaimsTable
结果应该是这样的:
【问题讨论】:
标签: sql tsql sql-server-2012