sql - SQL 在您向下行时计算运行总计,但也会考虑其他字段
问题描述
我希望你们能帮助解决这个问题。
我有一组通过 excel 显示的数据。
我正在尝试计算滚动的新上限津贴,但需要从前几周的预订中扣除。我不想使用光标,所以任何人都可以帮忙。
我将按产品 ID 进行分组,因此需要为每个产品重新开始。
在图像中,A 到 D 列是固定的,我正在尝试计算 E 列(“新上限”)中的数据。“新上限”是预期结果。
F 列给出了我想要做什么的详细公式。
不知道我做了什么让帖子被标记下来。
谢谢
解决方案
您想要通过此行的上限总和减去通过前一行预订的总和。使用窗口函数很容易做到这一点:
select t.*,
(sum(cap + booked) over (partition by productid order by weekbeg) - booked
) as new_cap
from t;
推荐阅读
- node.js - ReferenceError: require 没有用 Express 定义
- javascript - React Native:将状态函数转换为钩子时遇到问题
- javascript - JQuery 日期范围选择器给出未捕获的类型错误。关于我哪里出错的任何想法?
- flutter - Flutter 发布 apk 无法在 PayHere 中进行支付
- python - 在 xgboost 训练中使用 cupy 而不是 numpy 显着降低了 test-auc 分数
- javascript - 查询选择器不适用于模板文字
- ruby-on-rails - 有没有办法通过对 id 的搜索求和来计算价格
- javascript - 使用播放/暂停按钮启动/停止 CSS 选框?
- python - 数据流管道中 WriteToText 文件的 ERRNO2
- .net-core - Nuget 包 - 接口及其在单独的类库中的实现