在企業的erp系統中,財務,資材,倉庫,關務等帳務都會有關帳功能.
關帳後,之前月份的帳務數據將不再做任務新增,修改,刪除操作 .
以倉庫帳為例, 月關帳後, 會將上月的月底庫存數據結存轉結為本月期初庫存.
問題1: 所有月份的庫存結轉都是正確的嗎?有沒有關帳後又重新調整數據的情況?
可以用Lead取出後一行數據的期初和當前行的期末作為對比, 數據不一致則是錯誤
參考代碼如下: 倉庫帳以料號匯總校驗結存是否正確.
-
with xt as (
-
select yymm,mat_no,ultimo_stock,in_stock,out_stock,last_stock,
-
lead(yymm,1) over (partition by mat_no order by yymm) next_yymm , --下月
-
lead(ultimo_stock,1) over (partition by mat_no order by yymm) next_ultimo --下月期初
-
from
-
(
-
select yymm,mat_no,
-
sum(ultimo_stock) ultimo_stock, --本月期初
-
sum(in_stock) in_stock, --本月進
-
sum(out_stock) out_stock, --本月出
-
sum(ultimo_stock)+ sum(in_stock) - sum(out_stock) last_stock --期末數量
-
from y3_ymfstock
-
where yymm > to_char(add_months(sysdate,-8), 'YYYYMM')
-
group by yymm,mat_no
-
)
-
)
-
select *
-
from xt
-
where yymm < to_char(sysdate, 'YYYYMM' )
-
and last_stock <> nvl(next_ultimo ,0) --期末庫存不等於下月期初庫存
-
order by yymm,mat_no
這種情況下,使用lag取前一行數據是否可行呢 ?
回答: No. 當料號有結轉到本月,但是數量不一致時,能檢測到,
但該料號沒有能夠結轉到本月. 這筆料號沒有能夠檢測到.
阿飛
2015/05/08
阅读(2654) | 评论(0) | 转发(0) |