【发布时间】:2014-10-11 15:00:42
【问题描述】:
在 SQL SERVER 2008 R2 上,我有下表:
-
event_idint -
people_idint -
event_date日期 -
event_typevarchar
event_type 可能是:
-
"encounter" -
"legal" -
"food" -
"job_search" "education"-
"utilities" "child_care"
我想统计事件。
但我希望仅当它是为该 people_id/event_date 组合记录的唯一 event_type 时才计算“遭遇” event_type。
如果该 people_id/event_date 组合还有另一个 event_type,我想计算该 people_id/event_date 组合的所有 event_type 不是 event_type "encounter"。
在上述条件下,我希望返回日期范围 YEAR(event_date) = 2013 内所有事件的计数
我找到了使用SUM(CASE WHEN ...) AS x 的其他解决方案,这似乎是要走的路,但是当我将此与仅计算除"encounter" 以外的类型相结合时,如果"encounter" 和任何其他@987654337 @ 出现在相同的日期/人或其他event_type 出现在相同的日期/人没有类型"encounter"。
感谢任何建议!
【问题讨论】:
标签: tsql date sql-server-2008-r2 count case