【发布时间】:2013-08-08 14:30:12
【问题描述】:
我在 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
【问题讨论】:
-
29:59?一天多工作 6 小时就好了。
-
您能否为上述示例添加预期结果?
-
不开玩笑...我纠正了错字。
-
你也有,我猜是错字,在第三行 -
ContainerID = 2? -
是的,我更正了它并添加了我对示例的期望。
标签: sql sql-server sql-server-2008