【发布时间】:2021-06-15 11:45:10
【问题描述】:
我试过了:
SELECT DISTINCT
MONTH(ENCOUNTER_DATE) 'MONTH',
COUNT(CASE WHEN ENCOUNTER_DATE >= DATEADD(YEAR, -1, GETDATE()) THEN CUSTOMER_ID END) ,
COUNT(CASE WHEN ENCOUNTER_DATE >= DATEADD(YEAR, -2, GETDATE()) THEN CUSTOMER_ID END),
COUNT(CASE WHEN ENCOUNTER_DATE >= DATEADD(YEAR, -3, GETDATE()) THEN CUSTOMER_ID END),
COUNT(CASE WHEN ENCOUNTER_DATE >= DATEADD(YEAR, -4, GETDATE()) THEN CUSTOMER_ID END)
FROM
PATIENT_ENCOUNTERS
GROUP BY
MONTH(ENCOUNTER_DATE)
ORDER BY
MONTH(ENCOUNTER_DATE)
每个月的数据计数被添加到同月的下一年。
我用下面的查询交叉检查了数据不匹配的地方
SELECT
YEAR(ENCOUNTER_DATE), COUNT(CUSTOMER_ID)
FROM
PATIENT_ENCOUNTERS
WHERE
ENCOUNTER_DATE >= DATEADD(YEAR, -4, GETDATE())
GROUP BY
YEAR(ENCOUNTER_DATE)
ORDER BY
YEAR(ENCOUNTER_DATE) DESC
有人可以帮助我仅使用案例语句来查找过去 4 年中每月的数据吗?
【问题讨论】:
-
比较混乱,能不能先显示一些基本数据,然后通过excel输出你需要的数据。
-
仅供参考,它不是一个 case statement,而是一个 case expression。您需要展示样本数据和预期结果,以便我们提供帮助。
-
既然有
GROUP BY,为什么还要DISTINCT?您应该使用括号[MONTH]引用列名
标签: sql sql-server tsql sql-server-2008