私はSQLServer2008を使用しています:
1日あたりのタスクの総数と完了したタスクの総数をカウントするクエリがあります
週ごとに同じロジックを使用する必要があります(数日単位)。毎日のレコードは必要ありません(重要ですか?もしそうなら、どうすれば空の日レコードを挿入できますか?)。
以下は、1日あたりのタスクをカウントするための現在のクエリです。
SELECT
DATEADD(D, 0, DATEDIFF(D, 0, T.TaskEndDate)) AS 'EndDate',
COUNT(T.TaskID)NumOfTasks,
COUNT(CASE WHEN T.TaskRecordsStatus = 2 THEN T.TaskID END) NumOfCompleteTasks
FROM
dwh.Bks_DWH_TaskRecords_V1 T
GROUP BY
DATEADD(D, 0, DATEDIFF(D, 0, T.TaskEndDate))
ORDER BY
DATEADD(D, 0, DATEDIFF(D, 0, T.TaskEndDate)) DESC
これはクエリ出力です(サンプルとして数行):
End Date NumOfTasks NumOfCompleteTasks
2015-06-27 00:00:00.000 1 0
2013-09-17 00:00:00.000 1 0
2013-02-11 00:00:00.000 1 1
2013-02-07 00:00:00.000 4 0
2013-02-06 00:00:00.000 1 0
2013-02-04 00:00:00.000 1 0
2013-01-20 00:00:00.000 2 0
2013-01-19 00:00:00.000 1 0
2013-01-18 00:00:00.000 2 0
2013-01-17 00:00:00.000 5 0
これは必要な結果です:
End Date NumOfTasks NumOfCompleteTasks
2013-01-01 00:00:00.000 10 0
2013-01-07 00:00:00.000 6 1
2013-01-14 00:00:00.000 0 0
2013-01-21 00:00:00.000 0 0
2013-01-28 00:00:00.000 7 3
2013-02-05 00:00:00.000 2 1
2013-02-12 00:00:00.000 0 0