2014-09-26 71 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

相關問題