2014-02-06 35 views
0

我很努力地創建查詢,並希望從那些比我更聰明的人那裏獲得一些指導。我試圖編寫一個查詢,以便當DRG代碼= 005時,然後從該查詢中獲取所有HOSP_ADMT_DT,然後在沒有DRG = 5條件的情況下再次查詢一般索賠表,並提取30天內或錄取日期和錄取日期後的180天或更短時間,然後加入結果。如果符合條件,請執行以下操作

編輯: 我正在尋找的結果將運行下面的查詢。我需要這個結果。然後獲取下面查詢得到的所有成員標識和允許日期,然後執行一個查詢,該查詢抽取沒有DRG標準= 005的所有原始字段,但是具有DRG 5和允許日期的成員標識的標準,然後拉從該子集和拉在範圍內的所有權利要求承認日期的所有權利要求(由下式定義: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; 
+0

請提供一些示例數據和所需結果(通過編輯您的問題)。 –

+0

我很難在這個數據上添加數據。本質上,我想運行查詢1,然後採取成員身份證(有DRG 5),並承認日期,然後運行這兩個條件的mbr id(x1,x2,xn)中的查詢和mbr id匹配使用那裏接受日期然後減去30,並將CLM LN SVC FROM DT加180,並拉出所有索賠不僅僅是DRG 5. – user197240

回答

0

定義嘗試是這樣的

... WHERE (SBMTD_DRG_CD='005' OR (SBMTD_DRG_CD <>'005 AND (claim is > 30 days OR laim.date < (180 + admit.date))))

我不知道你的約會被存儲。 (對不起,手機上寫,不能格式化代碼)

+0

感謝您的反饋。唯一的問題是它不能是一個或一個條件。我認爲它必須是某種形式的子查詢。查詢獲取結果,在子查詢中採用結果的某些元素以及使用和標準。 – user197240

0

我認爲你需要水木清華這樣的:

  • CD_005子查詢返回的醫療細節DRG標準= 005,我也包括在內你有附加條件,你可能要修改他們
  • CD_ANY別名包含從該表

所有記錄當我們在MBR_ID和加入這些別名範圍內,我們收到了'005'聲明的[005]聲明範圍內[-30; +180]日期範圍內的所有記錄。

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; 

希望它運行良好,真的有幫助,我只是不能檢查它,因爲我沒有這樣的表。

相關問題