--Oracle对number(17,2) 类型的金额处理,两保位小数的精度。
-- 对t表中金额求和,最终保留2位小数 ,并转成字符串。
to_char(cast ( (NVL (sum (t. amount) , 0))
as decimal (17,2)),'FM99999999999999990.00')
as amount;
--t表中多个金额求和,并相加,最终保留2位小数并转成字符串。
to_char (cast ( (NVL (SUM (t. amount1), 0) +
NVL (SUM (t. amount2), 0)+ NVL (SUM (t. amount3) , 0)) as decimal(17,2)),'FM99999999999999990.00') as "amount",
--t表中对金额求差,最终保留2位小数,并转成字符串,t.amount1 考型NUNBER (17,2)。
to_char (cast (NVL(SUM (t.amount1), 0) - NVL (SUM(t.amount2),0)) as decinal (17, 2)),'FM99999999999999990.00 'as "amount",
注意括号,有误自行修改。
谢谢。