首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算反向运行总数

计算反向运行总数
EN

Database Administration用户
提问于 2017-03-16 15:21:45
回答 1查看 3.9K关注 0票数 1

我正在努力避免在我的项目中使用游标( Server 2012)。我需要准备查询,它计算反求(用减法)运行总数。

让我举例说明一下。

我有以下数据集:

代码语言:javascript
复制
Id  AppId   CaseId  Amount  Balance
1   2       123     16.48   43.29
2   2       123     5.01    43.29
3   2       123     2.25    43.29
4   4       123     16.48   43.29
5   4       123     5.01    43.29
6   4       123     2.25    43.29
7   10      789     2       10
8   11      789     4       10

我需要得到以下数据:

代码语言:javascript
复制
Id  AppId   CaseId  Amount  Balance Total
1   2       123     16.48   43.29   25.81
2   2       123     5.01    43.29   20.8
3   2       123     2.25    43.29   18.55
4   4       123     16.48   43.29   2.07
5   4       123     5.01    43.29   -2.94
6   4       123     2.25    43.29   -5.19
7   10      789     2       10      8
8   11      789     4       10      4

我试图在()上使用滞后和SUM(),但我不知道如何正确地使用它。

你能帮我一下吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-03-16 15:29:33

您可以使用MIN() OVER()SUM() OVER()的组合:

代码语言:javascript
复制
SELECT *, 
       MIN(Balance) OVER(PARTITION BY CaseId) - 
       SUM(Amount) OVER(PARTITION BY CaseId ORDER BY Id) Total
FROM dbo.YourTable
ORDER BY Id;

它的这是一个演示

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/167363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档