我试图从视图中将单元格值与该组中的最大值进行比较,但它给了我一个错误。
内部查询运行良好,它为我提供了一份患者名单、他们的适应症以及 2017 年和 3 年索赔的数量。在外部查询中,我只需要保持耐心,并且只需要保持 2017 年索赔 > 0 并且在 3 年内拥有最大索赔的迹象。
代码在这里抛出错误
SELECT patient_id,
CASE
WHEN Count(patient_id) = 1 THEN diagnosis_grouping
WHEN claim_2017 > 0
AND claims_3yr = Max(claims_3yr) THEN diagnosis_grouping
ELSE NULL
END AS INDICATION
FROM (SELECT patient_id,
diagnosis_grouping,
Sum (CASE
WHEN LEFT(service_date, 4) = '2017' THEN 1
ELSE 0
END) AS CLAIM_2017,
Count(DISTINCT claim_id) AS CLAIMS_3YR,
Max(Cast(service_date AS DATE)) AS LATEST_CLAIM
FROM l01_dx_claims A
INNER JOIN diagnosis_code_imm B
ON A.diagnosis_code = B.diagnosis_code
GROUP BY 1,
2
HAVING Count (DISTINCT claim_id) > 1
AND Sum(CASE
WHEN Cast(LEFT(service_date, 4) AS INT) = 2017 THEN 1
ELSE 0
END) > 0
ORDER BY Cast(patient_id AS INT),
diagnosis_grouping)
GROUP BY patient_id