有一TABLE存盤資料如下:

如何通過回圈方式將每次輸入的資料進行累計后輸出,其邏輯:
每次輸入處理的數量QUANTITY后,如果是同一ITEM_ID和CUSTOMER_ID,根據TRANS_TYPE結果進行累計(增或減),
否則不進行累計,每天同一ITEM_ID和CUSTOMER_ID可能存在多次記錄的情況,其結果如下(結果為最后一列):

uj5u.com熱心網友回復:
ORACLE的分析函式處理這個很簡單,根本不用回圈,回圈反而效率低select陳述句如下,update自己想想怎么寫吧
select org_id, lines_id, item_id, customer_id, trans_type, quantity, transaction_date,
sum(quantity) over(partition by item_id, customer_id, trans_type order by lines_id) as inv_qty
from table;
uj5u.com熱心網友回復:
這個我知道,不過這僅僅是分析資料而已,需要報表方式呈現給其他人查看
uj5u.com熱心網友回復:
邏輯補充說明:
每次輸入處理的數量QUANTITY后,如果是同一ITEM_ID和CUSTOMER_ID,根據TRANS_TYPE結果進行累計,如果是Packing Issue,
則是在上一次庫存數的基礎上進行加法計算;如果Packing Receiving,則是在上一次庫存數的基礎上進行減法計算,
每天同一ITEM_ID和CUSTOMER_ID可能存在多次記錄的情況
uj5u.com熱心網友回復:
難道報表里面不能寫分析函式的SQL嗎?!uj5u.com熱心網友回復:
sum(decode(trans_type, 'Packing Issue', -quantity, 'Packing Receiving', quantity)) over(partition by item_id, customer order by transaction_date) aaauj5u.com熱心網友回復:
還要插入到Form中
uj5u.com熱心網友回復:
你說的FORM是ORACLE的DEVELOPER吧,插入沒問題的,研究一下吧uj5u.com熱心網友回復:
是想生成一種累加的效果吧,如果是就建議把表用rownumber排序后,表自連后再統計,應該就能出階梯效果了。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/65178.html
標籤:基礎和管理
