微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL Server-反向累积总和

如何解决SQL Server-反向累积总和

我有一个需要累计的累计金额。如何在sql Server中做到这一点?

示例:

+---+-------------------+-----+
| id|               date|value|
+---+-------------------+-----+
| J1|2016-10-01 11:45:30|  100|
| J1|2016-10-02 11:30:30|  200|
| J1|2016-10-05 16:20:00|  400|
| J9|2016-10-06 08:35:00|  800|
| J9|2016-10-07 01:20:00|  900|
+---+-------------------+-----+

所需的数据框:

+---+-------------------+-----+---------+
| id|               date|value|non_cum_value|
+---+-------------------+-----+---------+
| J1|2016-10-01 11:45:30|  100|        0|
| J1|2016-10-02 11:30:30|  200|      100|
| J1|2016-10-05 16:20:00|  400|      200|
| J9|2016-10-06 08:35:00|  800|      400|
| J9|2016-10-07 01:20:00|  900|      100|
+---+-------------------+-----+---------+

我的代码

select t1.id,t1.value,DIFFERENCE(t1.value) as 'cum_sum'
from @t t1
inner join @t t2 on t1.id >= t2.id
group by t1.id,t1.value
order by t1.id

解决方法

嗯。 。 。您似乎想从“上一个”行中减去该值。那应该是:

select t.*,(t.value - lag(t.val) over (order by date)) as diff
from @t;

我不确定标题中为什么有“累计金额”。那并不能帮助我理解您要做什么。

,

另一种可能性是:

max-width: 100%

假设测试数据为:

let homme = document.getElementById("homme");
let femme = document.getElementById("femme");
homme.addEventListener("click",function(){
    homme.classList.add("active");
    femme.classList.remove("active");
});
femme.addEventListener("click",function(){
    femme.classList.add("active");
    homme.classList.remove("active");
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。