【问题标题】:Compute 2 Columns from current row and from the row above从当前行和上一行计算 2 列
【发布时间】:2020-06-30 09:01:04
【问题描述】:

我有一张像这样的表

我的目标是看起来像这样

基本上,它所做的就是根据期初余额的库存和库存一直向下求和,但我无法实现。如何显示这个?

我希望我的表格能在不影响期初余额行的情况下显示余额

【问题讨论】:

  • 1) 无排序 - 无结果。请记住 - 输出中的物理排序不适用。 2) 当您定义行排序时 - 使用 LAG() 函数。
  • 我有一个主 ID AI,我只是没有在我的示例中添加它
  • 如果是,请使用LAG()

标签: mysql sql select window-functions


【解决方案1】:

您可以使用窗口函数(如果您运行的是 MySQL 8.0)。假设列 id 定义了行的顺序,那就是:

select
    t.*,
    sum(coalesce(balance, 0) + coalesce(stock_in, 0) - coalesce(stock_out, 0))
        over(partition by branch_id order by id) new_balance
from mytable t

【讨论】:

  • 如果我有 2 个分支 ID,它会影响我的报告吗?
  • @PaulEdwardPagente:总和由branch_id 划分,因此无论您有多少branch_ids,这都会起作用。
  • 回答这个问题
猜你喜欢
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
相关资源
最近更新 更多