Я пытался сравнить значение ячейки с максимальным значением в этой группе из представления, но оно выдает мне ошибку.
Внутренний запрос работает нормально, он дает мне список пациентов,их показания и количество заявок на 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