我在理赔数据中工作,数据库中有多行。
例如:12345有5行,每条线路为不同的服务支付不同的金额。
我试图解决的问题是,每一行都可以自动定价,也可以手动定价。我试图用CASE/ will逻辑标记数据,这样任何带有手动价格标志的索赔都会出现在索赔上,标志将整个索赔设置为“手动定价”。
下面是数据仓库中数据外观的一个示例:http://imgur.com/a/QI4iC
下面是我期望逻辑产生的方式:http://imgur.com/a/kNTVm
发布于 2016-11-15 21:07:38
这里有一个方法你可以做到这一点。
select CLAIMID
, CLAIMLINE
, USEMANUAL
, IsManual.PricingUsed
from Claims c
cross apply
(
select max(case when USEMANUAL = 'Y' then 'Yes' else 'No' end) as PricingUsed
from Claims c2
where c2.CLAIMID = c.CLAIMID
) as IsManual发布于 2016-11-15 21:07:42
您可以使用窗口函数Max() over ( Server 2012+)
Declare @YourTable table (ClaimID int,ClaimLine int,UseManual varchar(10))
Insert Into @YourTable values
(12345,1,'N'),
(12345,2,'N'),
(12345,3,'N'),
(12345,4,'Y'),
(12345,5,'N')
Select *
,Manual_Priceing_Used = case when max(UseManual) over (Partition By ClaimID)='Y' then 'Yes' else 'No' end
From @YourTable返回
ClaimID ClaimLine UseManual Manual_Priceing_Used
12345 1 N Yes
12345 2 N Yes
12345 3 N Yes
12345 4 Y Yes
12345 5 N Yeshttps://stackoverflow.com/questions/40619606
复制相似问题