The sample SQL statement below demonstrates how to convert currency values in words.
SELECT MAX(txn.TRANID) [SO Number],
SUM(Abs(txnlines.NET_AMOUNT)) [Total Amount],
( CASE
WHEN SUM(Abs(txnlines.NET_AMOUNT)) = 0 THEN 'ZERO'
ELSE To_char(To_date(To_char(Trunc(SUM(Abs(txnlines.NET_AMOUNT)), 0))
, 'J'),
'JSP')
|| ' '
|| ( CASE
WHEN Length(To_char(Regexp_replace(
SUM(Abs(txnlines.NET_AMOUNT)),
'^[0-9]+\.',
'')))
= 1 THEN To_char(Regexp_replace(
SUM(Abs(txnlines.NET_AMOUNT)),
'^[0-9]+\.', ''))
|| '0/100'
ELSE To_char(Regexp_replace(
SUM(Abs(txnlines.NET_AMOUNT)),
'^[0-9]+\.',
''))
|| '/100'
END )
|| ' '
|| MAX(curr.NAME)
|| '(s) Only'
END ) [Amount in Words]
FROM Administrator.CURRENCIES curr,
Administrator.TRANSACTION_LINES txnlines
INNER JOIN Administrator.TRANSACTIONS txn
ON txn.TRANSACTION_ID = txnlines.TRANSACTION_ID
WHERE txn.TRANSACTION_TYPE = 'Sales Order'
AND txnlines.TAX_ITEM_ID IS NOT NULL
AND curr.CURRENCY_ID = txn.CURRENCY_ID
GROUP BY Administrator.TRANSACTIONS.TRANID;
The SQL above will generate this result:
No comments:
Post a Comment