根据某些行从上一行中减去

Subtract from previous row based on certain rows

我在SQL

中有一个这样的table

我想像我在Excel中创建的需求列一样计算需求列。

这是我在Excel

中使用的公式
=IF(T2=T1,IF(V1>V2,V1-V2,0),0)

此公式检查产品类型是否属于同一类别,如果是,则通过从前一个时间戳中减去库存量来计算已取货的产品数量。

我想在 Microsoft SQL 服务器中实现相同的功能。任何帮助将不胜感激。

您可以使用:

select t.*,
       (case when lag(stock) over (partition by type order by time) > stock
             then lag(stock) over (partition by type order by time) - stock
             else 0
        end)
from t;