SQL Server 2008 データベースに、Hours と Starts という実行中の合計を保持する 2 つの列を持つテーブルがあります。もう 1 つの列 Date には、レコードの日付が保持されます。日付は特定の月を通して散発的ですが、月の最後の時間の記録が常にあります。
例えば:
ContainerID | Date | Hours | Starts
1 | 2010-12-31 23:59 | 20 | 6
1 | 2011-01-15 00:59 | 23 | 6
1 | 2011-01-31 23:59 | 30 | 8
2 | 2010-12-31 23:59 | 14 | 2
2 | 2011-01-18 12:59 | 14 | 2
2 | 2011-01-31 23:59 | 19 | 3
テーブルをクエリして、指定された 2 つの年の間の各月の総時間数と開始時間を取得するにはどうすればよいですか? (この場合は 2011 年と 2013 年です。) 1 か月の最後のレコードから値を取得し、前月の最後のレコードから値を差し引く必要があることはわかっています。ただし、SQLでこれを行う良い方法を思い付くのに苦労しています。
要求どおり、期待される結果は次のとおりです。
ContainerID | Date | MonthlyHours | MonthlyStarts
1 | 2011-01-31 23:59 | 10 | 2
2 | 2011-01-31 23:59 | 5 | 1