2014-09-26 119 views
3

我想弄清楚如何让我的结果显示两位小数和货币,如果我可以。 现在我得到这样的:在SQL(Oracle)中将十进制数转换为货币

PARTID  PARTIDCOUNT AVGPLANAMT 
1001   27   17.02148148148148148148148148 
1002   13   54.18615384615384615384615384 
1003    3   467.4166666666666666666666666 
1009    5   862.27 

SELECT DISTINCT 
D.PARTID, 
COUNT(D.PARTID) AS PARTIDCOUNT, 
AVG(D.PLANAMOUNT) AS AVGPLANAMT 
FROM PARTS.... 
+1

您是否有要求舍入或截断的要求? – 2014-09-26 20:18:05

回答

3

如何以下(SQL Fiddle):

SELECT PARTID, COUNT(*) AS PARTIDCOUNT, 
     TO_CHAR(AVG(PLANAMOUNT), 'L999,999,999.00') AS AVGPLANAMT 
FROM PARTS 
GROUP BY PARTID 

对于我使用'L999,999,999.00'第二个参数,这将占到任何数量高达1十亿。如果您需要容纳更大的号码,请执行以下操作:'L999,999,999,999,999.00'

+1

对于本地化货币符号,您可能需要使用'L'而不是'$'。 – 2014-09-26 20:34:46

+0

** @ Sylvain Leroux **,很好的电话,我更新了我的答案。 – Linger 2014-09-26 20:38:22

+0

太棒了,谢谢! – tia97 2014-09-26 21:46:32

1

要仅显示两位小数,你可以使用ROUND功能

ROUND(AVG(D.PLANAMOUNT), 2) AS AVGPLANAMT 

更多信息上ROUND()可以发现here

你是什么意思and currency?你只想在前面加一个货币符号$?

如果是这样,试试这个。

COLUMN AVGPLANAMT FORMAT $990.99 

欲了解更多信息,你可以看看here

+0

非常感谢你! – tia97 2014-09-26 21:45:54