区分与WHERE子句项匹配的Oracle SQL结果集?

时间:2015-04-17 20:08:45

标签: sql oracle where-clause

我正在研究11,500项医疗保健索赔,我有以下疑问:

select distinct b.claim_nbr, b.SERV_NBR, a.Member_Nbr, b.AFF_NBR, b.YMDEFF, b.ymdend, b.Location
From (select distinct member_nbr, aff_nbr, ymdeff, ymdend
From service_x
Where claim_nbr in (######)) a
join service_x   b
on substr(a.aff_nbr,1,6) =  substr(b.aff_nbr,1,6)
and a.member_nbr = b.member_nbr and (b.ymdeff between a.ymdeff and a.ymdend)
order by 2;

结果集将包含我的列表中的声明以及相关声明(与成员编号,从属关系编号和服务日期匹配的声明)的字段信息。我试图避免从我的列表中一次插入一个声明到查询中,但我还需要一些方法来区分WHERE声明匹配的结果集。

我很乐意使用临时表来执行此操作,但我的权限是只读的,我的研究声明列表在此程序中不能SELECT,并且我的CREATE权限请求目前被拒绝。

我正在使用的程序(Benthic's Golden)能够在客户端导出到Excel,所以如果我可以进行客户端循环(如果这是可能的话),我可以把每个结果集在一个单独的Excel工作表上,并以此方式一次执行40-50。否则,我认为结果集必须是一个编译。如果可能的话,请教我一种区分结果集中不同记录的方法,通过使用成功的循环允许我将每个索引的结果集导出到Excel或通过许多索赔的结果集一次表明哪个索赔在where子句中匹配。

非常感谢您考虑我的问题。

编辑:我在Politank-Z的帮助下的最终代码:

select distinct b.claim_nbr, b.SERV_NBR, a.Member_Nbr, b.AFF_NBR, b.YMDEFF, b.ymdend, b.Location, a.origclm From (select distinct claim_nbr as origclm, member_nbr, aff_nbr, ymdeff, ymdend From service_x Where claim_nbr in (######)) a join service_x b on substr(a.aff_nbr,1,6) = substr(b.aff_nbr,1,6) and a.member_nbr = b.member_nbr and (b.ymdeff between a.ymdeff and a.ymdend) order by 8; Export excel

1 个答案:

答案 0 :(得分:0)

您想要的信息只需要冒泡。将claim_nbr添加到内部查询的SELECT子句中,并将其包含在外部查询的SELECT子句中的别名下,即可获胜。

select distinct a.claim_nbr ref_claim, b.claim_nbr, b.SERV_NBR, a.Member_Nbr, b.AFF_NBR,
b.YMDEFF, b.ymdend, b.Location
From (select distinct member_nbr, aff_nbr, ymdeff, ymdend, claim_nbr
From service_x
Where claim_nbr in (######)) a
join service_x   b
on substr(a.aff_nbr,1,6) =  substr(b.aff_nbr,1,6)
and a.member_nbr = b.member_nbr and (b.ymdeff between a.ymdeff and a.ymdend)
order by 2;