Sql 查询获取Oracle表stock中的余额

Sql 查询获取Oracle表stock中的余额,sql,oracle11g,Sql,Oracle11g,我在oracle数据表中有样本数据,即STOKREWARD表,我想在数量in和数量OUT之间取得平衡 我想得到价值平衡如下: 我尝试像这样使用查询,但结果不是我想要的 SELECT STOKREWARD.NO, STOKREWARD.DODATE, STOKREWARD.REWARDNAME, STOKREWARD.NOTES, STOKREWARD.QTYIN, STOKREWARD.QTYOUT, (STOKREWARD.QTYIN- STOKREWARD.QTYOUT) AS BALA

我在oracle数据表中有样本数据,即STOKREWARD表,我想在数量in和数量OUT之间取得平衡

我想得到价值平衡如下:

我尝试像这样使用查询,但结果不是我想要的

SELECT STOKREWARD.NO, STOKREWARD.DODATE, STOKREWARD.REWARDNAME, STOKREWARD.NOTES,
STOKREWARD.QTYIN, STOKREWARD.QTYOUT,
(STOKREWARD.QTYIN- STOKREWARD.QTYOUT) AS BALANCES
FROM STOKREWARD
ORDER BY STOKREWARD.NO ASC
此查询将给出以下结果:

有人能帮我吗?感谢您在上使用
SUM():

SELECT NO, DODATE, CODE, REWARDNAME, NOTES, QTYIN, QTYOUT,
    SUM (QTYIN - QTYOUT) OVER (ORDER BY DODATE ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS BALANCES
FROM STOKREWARD

你能解释一下(
SUM(QTYIN-QTYOUT)OVER(在无界的前一行和当前行之间按DODATE行排序)
的含义吗?这会将前一个余额添加到当前余额中,针对每一行,并对表中的所有记录执行此操作。这是一个运行总和,q.v.了解更多信息。