【发布时间】:2015-07-22 20:20:32
【问题描述】:
我有一个表格,显示每个案例的状态,同时执行多个作业,我希望显示结果,以便它只显示第一个和最后一个实例。 (主要是我想知道这个工作是什么时候开始的,它最后的已知状态是什么)。
我已经设法通过 UNION 函数连接的 2 个类似的 min、max 和 group by 查询获得结果。但是有没有更简单的方法?
但是,是否可以将 2 个实例显示在一行而不是 2 个单独的行上?因为第一个实例的日期将是开始日期,最后一个实例将是结束日期,我并不真正关心第一个状态,因为它始终处于待处理状态,我只想知道最后一个已知状态是什么
第一个表显示未过滤的结果,第二个表是期望的结果(但如果我们可以将第一个和最后一个实例组合在一行上会更好)
ID Status Date Job Note
1 pending 1-Jul A abc
1 pending 2-Jul A xyz
1 pending 2-Jul A abc
1 done 3-Jul B xyz
1 done 4-Jul A abc
2 pending 1-Jul A abc
2 done 2-Jul A xyz
2 done 2-Jul A abc
2 pending 3-Jul C xyz
2 pending 4-Jul C xyz
2 pending 5-Jul C xyz
2 pending 6-Jul C xyz
3 pending 2-Jul D xyz
3 done 3-Jul D abc
3 pending 4-Jul D abc
3 pending 1-Jul E xyz
3 done 3-Jul E xyz
ID Status Date Job Note
1 pending 1-Jul A abc
1 done 3-Jul B xyz
1 done 4-Jul A abc
2 pending 1-Jul A abc
2 done 2-Jul A abc
2 pending 3-Jul C xyz
2 pending 6-Jul C xyz
3 pending 2-Jul D xyz
3 pending 4-Jul D abc
3 pending 1-Jul E xyz
3 done 3-Jul E xyz
非常感谢您
【问题讨论】:
-
你能更清楚地解释你需要什么吗? “只显示第一个和最后一个实例”?按什么? ID?工作?如果您的第二个数据样本是期望的结果,我不明白您将如何从第一个样本中的数据中获得这些结果。
-
每个作业和 ID。例如,作业 A 和 B 都已分配给 ID1,作业 A 于 7 月 1 日开始,我们对 ID 1 下的 A 的最后记录是 7 月 4 日。所以我们要显示第一个表的第一行和第 5 行。我希望这更清楚
标签: sql sql-server sql-server-2014