【发布时间】:2017-12-31 06:44:55
【问题描述】:
我有一张来自票务系统的表格,其格式如下(仅显示两张示例票的行):
-----------------------------------------
| commentid | ticketid | ticketstatus |
|-----------|------------|--------------|
| 105 | 1337 | TBQ |
| 109 | 4242 | TBP |
| 118 | 1337 | TBQ |
| 121 | 4242 | closed |
| 125 | 1337 | finished |
| 176 | 1337 | closed |
-----------------------------------------
ticketid 是工单的唯一 ID,commentid 是针对每个新评论递增的索引,ticketstatus 是工单的状态。
现在,我想统计一下票的数量,其中状态直接从 TBQ 更改为 finished 或直接从 TBQ 更改为关闭。
我认为这应该可以通过递归 CTE 实现,但事情变得更加复杂,因为 commentid 不是一张票的直接序列,而是所有票的直接序列。此外,单个工单的状态更改之间可能有相当多的行。
对于上面的示例表,查询应返回“1”,因为票证 1337 是唯一将状态直接从 TBQ 更改为 closed
的票证我该怎么做?
【问题讨论】:
-
请发表输出也无法理解的问题
-
这些状态变化如何发生有什么规则吗?例如。多个 TBQ*/*TBP 后跟单个 closed 或 finished?
-
1337 从 TBQ 变为 TBQ。这不是问题吗?
-
@SalmanA 评论不必更改票证状态
标签: sql sql-server sql-server-2008