这个SQL语句有什么办法解决吗?

问题描述 投票:0回答:1

enter image description here

我这里使用的查询是通过使用 case 语句来获取索赔状态。但我没有得到预期的输出。

对于 Num :040523000374(第一行和第二行),其中 EventName 没有“ClaimReassigned”,则 ClaimStatus 为“Not ClaimReassigned”,工作正常

但对于 Num :047523000125(第 3 行至第 6 行),其中其中一个 Num 的 EventName 为

ClaimReassigned
,则第 3 行至第 6 行的该数字 (047523000125) 的
ClaimStatus
应为“ClaimReassigned”。

我使用了

CASE
语句,如下所示:

CASE EventName
    WHEN 'ClaimReassigned' THEN 'ClaimReassigned'
    ELSE 'Not ClaimReassigned'
END
sql sql-server case
1个回答
0
投票

使用窗口函数与

Partition by Num
count()
任何
EventName
等于
ClaimReassigned

的行
claimStatus = case when count(case when EventName = 'ClaimReassigned' 
                                   then 1 end) over (partition by Num) >= 1
                   then 'ClaimReassigned'
                   else 'Not ClaimReassigned'
                   end
© www.soinside.com 2019 - 2024. All rights reserved.