子查询帮助
我在创建子查询时遇到问题(我认为)并且希望得到一些指导。为简单起见,有些事情已被推广。
Select
A
b
c
d
e
Member ID
Hospital Admit Date
DRG Code
CLM_LN_SVC_FROM_DT
From
Claims Table
Where
DRG Code = 5
And A
And B
And c
我想将此查询的结果专门用于会员ID和会员的不同医院许可日期,并针对所有索赔查询索赔表: 其中的会员ID(来自上述查询的结果),此时我需要在录取日期前30天和录取日期后180天内提出索赔。这是我在努力设置这个子查询的地方。任何超出我有限基础的才华都会非常感激......
答案 0 :(得分:0)
听起来你需要类似于以下查询:
Select Distinct
ClaPeriod.MemberId,
ClaPeriod.DRGCode,
ClaPeriod.ClaimDate,
ClaPeriod.AdmittedDate,
A,
B,
C,
D,
E
From Claims ClaMain,
Claims ClaPeriod
Where (ClaMain.MemberId, ClaMain.AdmittedDate) In (
Select MemberId, AdmittedDate
From Claims claId
Where DRGCode = 5
)
And ClaMain.MemberId = ClaPeriod.MemberId
And ClaPeriod.AdmittedDate >= ClaMain.AdmittedDate - 30
And ClaPeriod.DischargedDate <= ClaMain.AdmittedDate + 180
Order By ClaPeriod.MemberId, ClaPeriod.AdmittedDate
说实话,我仍然不确定我是否已完全理解您的架构。我必须在我的sql测试中包含Distinct
子句以避免重复结果。如果我错过了标记,请告诉我,我会尽力改善答案。
更新:根据OP的评论,现在架构对我来说更清晰了,我会尝试改进答案。
据我了解,您需要获得所有声明:
如果是这样,可以使用将CLM_MED_DETL
连接到自身的查询来完成。 ne table将过滤DRG = 5的声明,另一个用于检索具有相同MBR_ID且符合日期条件的声明。这将是一个如下的查询:
Select CLAIMS.CLM_MED_DETL_ID,
CLAIMS.CLM_LN_CURR_STAT_TXT,
CLAIMS.CLM_ID_TXT,
CLAIMS.SVCG_PROV_NAME,
CLAIMS.SBMTD_DRG_CD,
CLAIMS.RVNU_CD,
CLAIMS.PLC_OF_SVC_CD,
CLAIMS.CLM_SRC_CD,
CLAIMS.CLM_LN_SEQ_NUM,
CLAIMS.CLM_LN_PRCDR_CD,
CLAIMS.MBR_ID,
CLAIMS.MBR_LST_NAME,
CLAIMS.MBR_FST_NAME,
CLAIMS.SVCG_PROV_ADDR_ZIP_CD,
CLAIMS.SVCG_PROV_ADDR_CNTY,
CLAIMS.HOSP_ADMT_DT,
CLAIMS.HOSP_DSCHRG_DT,
CLAIMS.CLM_LN_UNITS_NUM,
CLAIMS.CLM_LN_CHRG_AMT,
CLAIMS.CLM_LN_ALWD_AMT,
CLAIMS.CLM_LN_PD_AMT,
CLAIMS.TIN_TXT,
CLAIMS.CLM_LN_SVC_FROM_DT,
CLAIMS.CLM_LN_SVC_TO_DT
From CLM_MED_DETL DRG5CLAIMS,
CLM_MED_DETL CLAIMS
Where CLAIMS.MBR_ID = DRG5CLAIMS.MBR_ID
And DRG5CLAIMS.SBMTD_DRG_CD = '005'
And DRG5CLAIMS.CLM_LN_SVC_FROM_DT >= CLAIMS.HOSP_ADMT_DT - 30
And DRG5CLAIMS.CLM_LN_SVC_FROM_DT <= CLAIMS.HOSP_DSCHRG_DT + 180
And CLAIMS.CLM_SRC_CD = 'TRG_FA'
And CLAIMS.CLM_LN_PD_AMT <> 0
And CLAIMS.CLM_LN_CURR_STAT_TXT <> 91
Order By CLAIMS.MBR_LST_NAME Asc, CLAIMS.CLM_LN_SEQ_NUM Asc;