問題:
會計科目維護:NC_ACCOUNT_SUBJECT
輔助覈算維護:NC_ACCOUNT_AUXILIARY
會計科目和輔助覈算兩者的:關係表:NC_ACCOUNT_SUBJECT_AUXILIARY
一共有多個輔助,想在一行顯示出來,哪些輔助是,哪些輔助不是;
比如:
解決方法:
運用函數來解決的,
創建函數:
CREATE OR REPLACE FUNCTION F_GET_SUBJECT_AUXILIARY (
p_subject_id IN VARCHAR2,
p_code IN VARCHAR2
) return VARCHAR2 IS Result VARCHAR2 ( 200 );
BEGIN
SELECT
DECODE(COUNT(1),0,'否','是') INTO Result
FROM
NC_ACCOUNT_AUXILIARY NAA
LEFT JOIN
NC_ACCOUNT_SUBJECT_AUXILIARY NASA ON NASA.AUXILIARY_ACCOUNT_ID = NAA.ID
WHERE NASA.SUBJECT_ID = p_subject_id
AND NAA.CODE = p_code;
return Result ;
END F_GET_SUBJECT_AUXILIARY;
SQL語句調用函數來顯示:
SELECT
--NAS.* ,
nas.apply_type as 單據類型,
nas.org_id as 機構代碼,
nas.org_name as 機構名稱,
nas.code as 會計科目編碼,
nas.name as 會計科目名稱,
nas.cost_code as 費用編碼,
nas.cost_name as 費用名稱,
nas.detail_code as 明細費用編碼,
nas.detail_name as 明細費用名稱,
nas.company_id as 公司主鍵,
DECODE(NAS.SUBJECT_DIRECTION,'00','借','10','貸',NAS.SUBJECT_DIRECTION) 科目方向,
nas.subject_line_number as 科目行號,
F_GET_SUBJECT_AUXILIARY(NAS.ID,'DEPT_ACCT') AS 部門輔助覈算,
F_GET_SUBJECT_AUXILIARY(NAS.ID,'STAF_ACCT') AS 人員輔助覈算,
F_GET_SUBJECT_AUXILIARY(NAS.ID,'BANK_ACCT') AS 銀行帳戶輔助覈算,
F_GET_SUBJECT_AUXILIARY(NAS.ID,'CASH_ACCT') AS 現金流量輔助覈算,
F_GET_SUBJECT_AUXILIARY(NAS.ID,'CUST_ACCT') AS 客商輔助覈算,
F_GET_SUBJECT_AUXILIARY(NAS.ID,'UNIT_ACCT') AS 單位分類輔助覈算,
nas.amount_type as 金額取值
--F_GET_SUBJECT_AUXILIARY(NAS.ID,'XM_ACCT') AS XM_ACCT, 項目
FROM
NC_ACCOUNT_SUBJECT NAS
LEFT JOIN
SEC_ORGANIZATION SO ON NAS.ORG_ID = SO.ID
WHERE
1 =1
ORDER BY NAS.ORG_ID,APPLY_TYPE_CODE