我在 SQL Server 2008 数据库中有一个表,其中两列保存运行总计,称为 Hours 和 Starts。另一列 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
如何查询表以获取两个指定年份之间每个月的总小时数和开始数?(在这种情况下是 2011 年和 2013 年。)我知道我需要从一个月的最后一条记录中获取值,然后减去上个月最后一条记录中的值。但是,我很难想出在 SQL 中执行此操作的好方法。
根据要求,以下是预期结果:
ContainerID | Date | MonthlyHours | MonthlyStarts
1 | 2011-01-31 23:59 | 10 | 2
2 | 2011-01-31 23:59 | 5 | 1