【发布时间】:2020-12-09 02:26:34
【问题描述】:
感谢您的关注。我正在尝试根据 CASE 语句从现有数据中派生新列,但似乎无法正常工作。
我可以使用 IncidentID、SPECCOLLECTEDDATE 和我已经成功设置的派生列 PN.PositiveNegative,它指示测试是阳性还是阴性。
这就是我想要做的。 IncidentID 有许多重复的实例,在这种情况下,这意味着对于一个 IncidentID,至少存在一个,但有时不止一个,测试存在。对于每组 IncidentID,我想找到:
DateFirstPositive(必填),最早的阳性检测日期
DateLastPositive(可选,最近的阳性测试日期
DateFirstNegative(可选),最早的否定测试日期
DateLastNegative(可选),最近的负日期
我一直在尝试让 CASE 语句与此一起使用,但我似乎无法理解。我正在努力解决的主要问题是如何将 CASE 语句应用于 CROSS APPLY 表达式中的 IncidentID 组。
非常感谢您提供的任何帮助。
【问题讨论】:
-
一些示例数据、预期输出和您尝试过的代码会很有帮助
-
仅供参考,它是
case表达式 not 语句。
标签: sql sql-server group-by case cross-apply