很多時候, Oracle 文件有提供資料, 但總是要自己看完再寫sql, 雖然前輩或是從網路上可以找到不少參考的SQL, 但我仍然盡量按照Oracle 的FORM 呈現的方式, 去找他們是用function 或是用其他方法取得相關數據, 套用Oracle 原始的方式,除非原本有bug 否則不太可能會出錯, 也許驗證資料幾百筆都對, 但可能因為公司別或是因為幣別匯率等等的原因, 導致一個月後或是幾天後發現問題。遇到問題再來找原因,我寧願把時間拿來剝洋蔥,自己找答案
本次時間:4 小時
從Oracle Standard PO 找到 Amount 以及 Matched Amount 的計算
FORM call Library - POXPOVP2.PLL
– HEADERS_FOLDER_C. post_query
Matched Amount
select nvl(sum(nvl(apid.amount, 0)), 0)
into x_mamount
from ap_invoice_distributions apid
, po_distributions pod
where pod.po_distribution_id = apid.po_distribution_id
and pod.po_header_id = poh_id
and pod.po_release_id = por_id;
Amount à po_inq_sv.GET_PO_TOTAL('STANDARD', 143807, NULL)
FUNCTION get_po_total
(x_type_lookup_code IN VARCHAR2,
x_po_header_id IN NUMBER,
x_po_release_id IN NUMBER)
Db object: [ package]
po_inq_sv.get_post_query_info
(
x_cancelled_by,
NULL,
to_number(name_in('headers_folder.agent_id')),
-- name_in('headers_folder.type_lookup_code'),
x_type_lookup_code,
to_number(name_in('headers_folder.po_header_id')),
to_number(name_in('headers_folder.po_release_id')),
NULL,
NULL,
x_agent_name,
x_closed_by_name,
x_cancelled_by_name,
x_base_currency,
x_amount);