ID、STATUS、および COMPLETION_TIME を列として持つ JOBS というデータベース テーブルがあります。STATUS 0,1 は成功、STATUS 2,3 は失敗、STATUS 4,5 は強制終了です。ステータスは 1 つだけです。過去 10 時間以内に成功、失敗、強制終了されたジョブの数を知りたいです。クエリには SELECT のみを使用する必要があり、クエリに変数を使用することはできません。操作には次のクエリを使用しました。
SELECT
(SELECT COUNT(*)
WHERE STATUS IN (0,1))AS SuccessCount,
(SELECT COUNT(*)
WHERE STATUS IN (2,3))AS FailedCount ,
(SELECT COUNT(*)
WHERE STATUS IN (4,5))AS KilledCount,
FROM JOBS
WHERE COMPLETION_TIME >= (SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) - (10 * 60 * 60))
AND COMPLETION_TIME <= (SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()));
しかし、このクエリは機能していません。それは、成功した、失敗した、または殺した仕事を私に与えていますが、その数ではありません。