【发布时间】:2020-01-08 19:27:43
【问题描述】:
我有如下表格,其中包含该期间的客户用电量。可用数据,如
OwnerID StartDate EndDate Volume
---------------------------------------
1 2019-01-01 2019-01-15 10.40
1 2019-01-16 2019-01-31 5.80
1 2019-02-01 2019-02-10 7.90
1 2019-02-11 2019-02-28 8.50
对于这个OwnerID = 1,现有一些体积为 0.90。这应该应用第一行(添加)
- 获取整数和小数部分值
- 返回的第一行十进制值应添加到下一行,反之亦然。
现有体积 - 0.90
所以预期的结果集应该是这样的:
OwnerId StartDate EndDate CalulatedVolume AppliedExistingVolume(0.90) RemainExistingVolume
----------------------------------------------------------------------------------------------------
1 2019-01-01 2019-01-15 11 0.60 0.30
1 2019-01-16 2019-01-31 6 0.20 0.10
1 2019-02-01 2019-02-10 8 0.10 0.00
1 2019-02-11 2019-02-28 8 0.00 0.50
您能建议如何在 SQL 查询中实现这一点吗?
【问题讨论】:
-
为什么 10.4 到 11 而 8.5 到 8?这也与您的其他问题非常相似,但您尚未接受该答案。
-
将 ExistingVolume 0.90 添加到第一个值 10.4
-
这似乎是个好问题。如果你只是解释每一行的输出并增加兴奋度,那就太好了。谢谢。
标签: sql sql-server