我正在努力创建一个查询,希望能从比我聪明的人那里得到一些指导。我正在尝试编写一个查询,当DRG Code =005时,从这个查询中获取所有的HOSP_ADMT_DT,然后再次查询general claims表,不使用DRG =5条件,并提取所有在录取日期之前30天或之前以及录取日期之后180天或更短的索赔,然后连接结果。
编辑:我正在寻找的结果将运行下面的查询。我需要这个结果。然后获取从下面的查询中得到的所有成员id和接纳日期,并执行一个查询,该查询提取所有没有DRG条件= 005的原始字段,但条件是具有DRG 5和接纳日期的成员id,然后从该子集中提取所有索赔,并拉取范围内的所有索赔允许日期(定义的by:HOSP_ADMT_DT) - 30和接纳日期+ 180。CLM_LN_SVC_FROM_DT,CLM_LN_SVC_TO_DT -定义者
SELECT CLM_MED_DETL_ID
,CLM_ID_TXT
,CLM_SRC_CD
,CLM_LN_SEQ_NUM
,MBR_ID
,MBR_LST_NAME
,MBR_FST_NAME
,SVCG_PROV_ADDR_ZIP_CD
,SVCG_PROV - ADDR_CNTY
,SBMTD_DRG_CD
,HOSP_ADMT_DT
,HOSP_DSCHRG_DT
,RVNU_CD
,CLM_LN_UNITS_NUM
,CLM_LN_CHRG_AMT
,CLM_LN_ALWD_AMT
,CLM_LN_PD_AMT
,TIN_TXT
,HOSP_ADMT_DT
,CLM_LN_SVC_FROM_DT
,CLM_LN_SVC_TO_DT
FROM CLM_MED_DETL
WHERE TIN_TXT IN ( 'A', 'B' )
AND SBMTD_DRG_CD = '005'
AND CLM_SRC_CD = 'TRG_FA'
ORDER BY MBR_LST_NAME ASC
,CLM_LN_SEQ_NUM ASC;发布于 2014-02-07 04:38:14
试试这样的东西
... WHERE (SBMTD_DRG_CD='005' OR (SBMTD_DRG_CD <>'005 AND (claim is > 30 days OR laim.date < (180 + admit.date)) ))
我不知道你的日期是怎么存储的。(对不起,在手机上写,无法格式化代码)
发布于 2016-03-14 13:25:47
我认为你需要这样的smth:
CD_005条件= 005的医疗详细信息,我还在其中包括了您的附加条件,您可能想要修改它们CD_ANY别名包含该表中的所有记录当我们在MBR_ID和HOSP_ADMT_DT范围上连接这些别名时,我们将收到-30;+180日期范围内的所有记录,这些记录都是曾经有过'005‘索赔的客户的'005’索赔。
WITH CD_005 as (
SELECT MBR_ID, HOSP_ADMT_DT
FROM CLM_MED_DETL
WHERE TIN_TXT IN ( 'A', 'B' )
AND SBMTD_DRG_CD = '005'
AND CLM_SRC_CD = 'TRG_FA'
)
SELECT CLM_MED_DETL_ID
,CLM_ID_TXT
,CLM_SRC_CD
,CLM_LN_SEQ_NUM
,CD_ANY.MBR_ID
,MBR_LST_NAME
,MBR_FST_NAME
,SVCG_PROV_ADDR_ZIP_CD
,SVCG_PROV - ADDR_CNTY
,SBMTD_DRG_CD
,CD_ANY.HOSP_ADMT_DT
,HOSP_DSCHRG_DT
,RVNU_CD
,CLM_LN_UNITS_NUM
,CLM_LN_CHRG_AMT
,CLM_LN_ALWD_AMT
,CLM_LN_PD_AMT
,TIN_TXT
,HOSP_ADMT_DT
,CLM_LN_SVC_FROM_DT
,CLM_LN_SVC_TO_DT
FROM CLM_MED_DETL CD_ANY
JOIN CD_005
on CD_ANY.MBR_ID = CD_005.MBR_ID
and CD_ANY.HOSP_ADMT_DT >= CD_005.HOSP_ADMT_DT - 30
and CD_ANY.HOSP_ADMT_DT <= CD_005.HOSP_ADMT_DT + 180
ORDER BY MBR_LST_NAME ASC
,CLM_LN_SEQ_NUM ASC;希望它运行良好,真的有帮助,我只是不能检查它,因为我没有这样的表。
https://stackoverflow.com/questions/21613099
复制相似问题