我有一个存储票状态更改的表。一些门票在关闭后重新打开。并且在某些情况下(下面的示例)重新打开了几次。
Ticket SEQUENCE NEWVALUE OLDVALUE TIMESTAMP
5879 15870 REQUEST NULL 2015-06-10 12:13:28.000
5879 16256 Pending REQUEST 2015-06-11 14:26:38.000
5879 21642 Open Pending 2015-07-02 13:32:47.000
5879 21943 Pending Open 2015-07-06 09:55:37.000
5879 23195 Open Pending 2015-07-09 15:00:47.000
5879 24917 Pending Open 2015-07-17 15:09:28.000
5879 25903 Closed Pending 2015-07-22 11:13:03.000
5879 25940 Open Closed 2015-07-22 12:56:05.000
5879 25972 Pending Open 2015-07-22 13:54:30.000
5879 25996 Closed Pending 2015-07-22 14:31:05.000
5879 26484 Pending Closed 2015-07-24 14:43:28.000
5879 26776 Closed Pending 2015-07-27 11:34:00.000
我正在尝试确定上次关闭票证的时间。但我什至不知道如何开始这个查询。有人可以提供线索吗?非常感谢!
我试图得到的最终结果如下所示:
Date Tickets Submitted Tickets Closed
2015-06-01 123 44
2015-06-02 125 45
2015-06-03 147 51
2015-06-04 190 58
2015-06-05 132 38
2015-06-06 93 28
2015-06-07 126 30
2015-06-08 167 50
我目前的查询是:
SELECT CAST(SUBMITDATE as date) as 'Date'
,COUNT(*) as [Tickets Submitted]
,SUM(CASE WHEN NEWVALUE = 'Closed' THEN 1 ELSE 0 END) as [Tickets Closed]
FROM dbo.MasterTable
FULL OUTER JOIN FIELDHISTORY
ON MasterTable.Ticket = FIELDHISTORY.Ticket
WHERE SUBMITDATE >= '2015-06-01'
AND SUBMITDATE < '2015-06-08'
GROUP BY CAST(SUBMITDATE as date)
ORDER BY CAST(SUBMITDATE as date)
此查询的问题在于它没有显示在该特定日期关闭了多少票。它仅显示在特定日期打开的票证池中关闭的票证数量。换句话说,从上面的示例中,在 2015 年 6 月 1 日,创建了 123 个工单,其中 44 个工单目前已关闭。如果有人要关闭 6 月 1 日创建的另一张工单,则 44 个已关闭工单的数字可能会发生变化。
希望这不会太混乱!=D