2016-06-29 13 views
1

で残高を取得します。問合せは、すなわち<strong>STOKREWARD</strong>テーブル、私は</strong>と量<strong>OUT</strong>の数量<strong>との間のバランスを取得したい私は、Oracleデータ・テーブルのサンプルデータを持つOracleテーブルの株式

enter image description here

私は値残高にこのような取得したい:私はこのようなクエリを使用してみたが、結果は私が

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 

を望んでいない

enter image description here

をこのクエリは結果を返します:

enter image description here

誰でも私を助けることができますか? SUM() OVERを使用したおかげで

答えて

1

: - `OVER(UNBOUNDED PRECEDING AND CURRENT ROW BETWEEN DODATEのROWS BY ORDER)

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 
+0

uは何が' SUM(QTYOUT QTYIN)の意味で、私を説明することができますか? – aminvincent

+0

これは、各行の現在の残高に前の残高を追加し、テーブルのすべてのレコードに対してこれを行います。それは、積立金、q.v.です。詳細については、[こちら](http://stackoverflow.com/questions/1092120/over-clause-in-oracle)を参照してください。 –

+1

あなたの説明のおかげで..それはとても助けてくれました – aminvincent

関連する問題

 関連する問題