SELECT t.*,
Nvl(qty-Lag(qty) over (PARTITION BY code ORDER BY dt),qty) AS x
FROM
(
select 200801 as dt, 'a' as code, 8 as qty from dual union all
select 200801 as dt, 'b' as code, 6 as qty from dual union all
select 200801 as dt, 'c' as code, 9 as qty from dual union all
select 200802 as dt, 'a' as code, 9 as qty from dual union all
select 200802 as dt, 'b' as code, 8 as qty from dual union all
select 200802 as dt, 'd' as code, 9 as qty from dual union all
select 200803 as dt, 'a' as code, 4 as qty from dual
) t
/
DT
CODE
QTY
X
200801
a
8
8
200802
a
9
1
200803
a
4
-5
200801
b
6
6
200802
b
8
2
200801
c
9
9
200802
d
9
9
|