2013-08-16 62 views
1

我有有一欄表:類型的balance_amountVARCHARPHP的MySQL SUM與十進制格式

現在我面臨的問題時,我想SUM

,如果我有內容列:

125,000.00 
170,000.00 

這將只顯示:295

我要的是:295,000.00

+0

125,000.00是一個字符串,而不是數字 – Anigel

+1

由於該值存儲爲文本並且格式完整,因此您將在計算數據時重新格式化許多問題。您可能需要首先進行表寬轉換並停止以文本形式存儲 – jeff

+0

使用小提琴查看我的更新答案 –

回答

1

這裏是SQLFiddle

SELECT FORMAT(SUM(CAST(REPLACE(REPLACE(col,',00',''),'.','') AS SIGNED)), 2) 
    AS sumOfColumn 
    FROM tab 
+0

由於使用了數千個逗號分隔符,所以仍然存在問題:最佳解決方案是讓OP修改其列類型,但您可能需要在鑄造之前規定這些逗號 –

+0

@MarkBaker查看我的更新回答 –

+0

我可以將數字格式設置爲結果嗎?我看到它只是125000.我希望125,000.00 –

1

您將需要刪除千位分隔符。

select sum(replace(column,',','')) from table; 

理想情況下,儘管您應該使用適當的字段定義存儲數字,並且只是格式化數字以供顯示。