【发布时间】:2010-08-01 02:54:05
【问题描述】:
我有一个包含以下数据的 Sql Server 2005 表:
idHearing 是主键(身份),idCase 是可能重复的外键。 StartDate 和 StartTime 指定事件的日期和时间 - 这两个字段都是 DateTime 类型(无论出于何种原因,它们都是单独的字段)。所有 StartDate 数据的时间均为 12:00:00。所有 StartTime 数据的日期均为 1900 年 1 月 1 日。 IsScheduled 和 IsOnCalendar 是位域。
我的挑战是为每个 idCase 选择最近的(就日期/时间而言)听证会。如果 StartDate/StartTime 相同(如在第 1 行和第 2 行中),则应优先考虑启用了 IsScheduled 和/或 IsCalendar 的行。如果这些列也相同,那么返回哪一行都没有关系。
为了使这更复杂,我必须在单个 SELECT 语句中完成所有操作(因为它必须在视图中),并且我必须返回您在下面看到的所有列。
我尝试了几种方法,但我的 SQL-FU 并不强大。有什么想法吗?
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql view