首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果满足条件,则执行以下操作

如果满足条件,则执行以下操作
EN

Stack Overflow用户
提问于 2014-02-07 04:14:55
回答 2查看 93关注 0票数 0

我正在努力创建一个查询,希望能从比我聪明的人那里得到一些指导。我正在尝试编写一个查询,当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 -定义者

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

发布于 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)) ))

我不知道你的日期是怎么存储的。(对不起,在手机上写,无法格式化代码)

票数 0
EN

Stack Overflow用户

发布于 2016-03-14 13:25:47

我认为你需要这样的smth:

  • DRG子查询返回CD_005条件= 005的医疗详细信息,我还在其中包括了您的附加条件,您可能想要修改它们
  • ,而CD_ANY别名包含该表中的所有记录

当我们在MBR_IDHOSP_ADMT_DT范围上连接这些别名时,我们将收到-30;+180日期范围内的所有记录,这些记录都是曾经有过'005‘索赔的客户的'005’索赔。

代码语言:javascript
复制
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;

希望它运行良好,真的有帮助,我只是不能检查它,因为我没有这样的表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21613099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档