Подзапрос Case Case - PullRequest
       21

Подзапрос Case Case

0 голосов
/ 13 декабря 2018

ШАГ 1:

У меня есть следующий код, который создает таблицу ниже:

USE EMTCQIData

SELECT * , (FCT_MAX_CHARGES - CPT_CHARGES) AS DELTA
FROM
    (
    SELECT CONC.[FIN] as FIN, CONC.Clinical, 
        CASE
          WHEN CONC.Clinical like '%level 5%' THEN '9285' 
        END FCT_MAX,
        CASE
          WHEN CONC.Clinical like '%level 5%' THEN CAST($200 AS int) 
        END FCT_MAX_CHARGES,
        CPT.CPT,
        CASE
          WHEN CPT.CPT like '9285' THEN CAST($200 AS int) 
        END CPT_CHARGES
    FROM CPT_MASTER as CPT
    INNER JOIN 
    (
        SELECT DISTINCT ST2.[FIN], 
            SUBSTRING(
              (
                SELECT ','+ST1.[Clinical Event Result]  AS [text()]
                FROM ED_FCT_Q1_FY19 ST1
                WHERE ST1.[FIN] = ST2.[Financial Number] AND ST1.[FIN]<> 'No'
                Order BY [Financial Number] 
                FOR XML PATH ('')
              ), 2, 1000) [Clinical]
        FROM ED_FCT_Q1_FY19 ST2
    ) as CONC ON CONC.[Financial Number]=CPT.FIN
    WHERE CPT.CPT LIKE '9928%'
) AS COMPLETE
ORDER BY FIN

ПРОИЗВОДСТВЕННАЯ ТАБЛИЦА (таблица результатов 1)

FIN   Clinical                           FCT_MAX   FCT_MAX_Charges    CPT  CPT_Charges  DELTA 
1     Dicharge[Level2] Transfer [Level3]  9284       200             9283    100        100

ШАГ 2:

У меня есть код CASE, который анализирует столбец «Клиника» на основе уровня клинического события (без каких-либо данных CPT / FCT, поскольку его нет в таблице ED_FCT_Q1_FY19).Так, например, приведенные выше результаты будут выглядеть одинаково, за исключением того, что столбец «Клинические» будет заменен столбцами с индивидуальным уровнем.

Как я могу вложить этот код CASE в код сверху для получения желаемой таблицы ниже.

Желаемая таблица

FIN   Level 1  Level 3             FCT_MAX   FCT_MAX_Charges    CPT  CPT_Charges  DELTA 
1     Dicharge Transfer            9284       200             9283    100        100

Пример кода дела, который я использовал для анализа КЛИНИЧЕСКОЙ КОЛОННЫ из таблицы результатов 1

SELECT [Financial Number], [Clinical Event Result],

CASE
   WHEN [Clinical Event Result] like '%1:1 Nursing care%' Then '1'
      ELSE '0'
End [1:1 Nursing Care],

CASE
   WHEN [Clinical Event Result] like '%Admission or O.R. preparation%' Then '1'
      ELSE '0'
End [Admission or O.R. preparation],
FROM ED_FCT_Q1_FY19
...