SQL Server - 使用上一个行值计算当前行值

时间:2015-10-13 08:51:27

标签: sql-server-2008

我有下表并使用SQL Server 2008

    Tbl_TRNSACTION

 RowNum    Transaction Type        InQty     OutQty     InPrice
    1              IN               20          0           20
    2              IN               50          0           40
    3              OUT              0           10          - 
    4              IN               10          0           30

我希望以下列格式输出

如果TransType为IN,

然后(InQty * InPrice)添加在CumulativeStockVal

和StockRate =(CumulativeStockVal / Balance)。

如果交易类型为OUT,

然后(OutQty * previous(StockRate))从CumulativeStockVal中减去。

RowNum   TransType InQty   OutQty  Balance  CumulatveStockVal  StockRate

  1        IN      20       0       20      400                20
  2        IN      50       0       70      2400               34.285
  3        OUT     0        10      60      2057.15            34.285
  4        IN      10       0       70      2357.15            33.673

请回复。谢谢。

1 个答案:

答案 0 :(得分:0)

尝试结合使用AGGREGATE函数的窗口偏移功能。

编辑:我发现你的啧啧非常清楚,从第15分钟开始观看。

https://www.microsoftvirtualacademy.com/en-US/training-courses/querying-microsoft-sql-server-2012-databases-jump-start-8241?l=OZmttuJy_2304984382