終了しようとしているプログラムに問題があります。3 つのタイムスタンプを格納するテーブルがあります。クエリと応答の統計を作成するために使用されます。最初のタイムスタンプはクエリの日時 (Date_Sent) で、残りの 2 つは、専門家の 1 人がクエリに初めて応答したとき (FirstResponse) と、そのクエリが満たされたとき (LastResponse) です。次の基準に基づいてグラフを作成することになっています。
- 1 か月あたりの合計クエリ数
- 2 時間以内に応答したクエリの数
- 24 時間未満で 2 時間以上応答したクエリの数
- 48 時間以内に 24 時間以上応答したクエリの数
- 72 時間未満で 48 時間以上応答したクエリの数
- 96 時間未満で 72 時間以上応答したクエリの数
私は最初の要件を実行できます:
SELECT Count(Date_Sent) AS TotalQueries,
SUBSTRING(CONVERT(VARCHAR(11), Date_Sent, 113), 4, 8) AS Month,
RIGHT(CONVERT(VARCHAR(7), Date_Sent, 120), 2) AS Month_Order
FROM AskAO.dbo.AskAO_Stats
WHERE Date_Sent BETWEEN '6/1/2012' AND '6/30/2013' AND
FirstResponse != '' AND
LastResponse != '' AND
FirstResponse < LastResponse
GROUP BY SUBSTRING(CONVERT(VARCHAR(11), Date_Sent, 113), 4, 8),
CONVERT(VARCHAR(7), Date_Sent, 120)
ORDER BY SUBSTRING(CONVERT(VARCHAR(11), Date_Sent, 113), 4, 8)
私はこのサンプル結果を得ることができます:
TotalQueries Month Month_Order
655 Jun 2013 06
289 May 2013 05
ただし、他のものを取得する方法はわかりません:( DateDiffを介して値を計算できることはわかっていますが、必要なのは、これらの特定の基準を満たす月ごとのクエリの数です。これが必要です:
TotalQueries 2Hrs 24Hrs 48Hrs 72Hrs 96Hrs Month Month_Order
655 300 190 80 55 30 Jun 2013 06
289 180 50 30 15 14 May 2013 05
私は複雑な SQL に慣れていないので、これが実行可能かどうかわかりません。