チケットのステータス変更を保存するテーブルがあります。一部のチケットは、クローズ後に再オープンされました。また、場合によっては(以下の例)、数回再開しました。
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