2017-03-22 2 views
1

MySQL WorkbenchのSUM-Functionに問題があります。関数を使用すると、偽の値が返されます。SQL Sumは偽の値を返します

  • 56,03
  • 35,59
  • 54,35

が結果は145,97する必要がありますが、そのちょうど145: I'dは、これらの3つの数字を合計したいです代わりに。私は、これらの異なるコードを試みた:

SELECT SUM(price) FROM table; 

この1つは第1の値145.00を返し145

SELECT ROUND(SUM(price),2) FROM table; 

値を返します。

MySQL Workbenchにある別のDBで試したので、コードに何が間違っているのだろうかと思っていました。また、両方のデータベースのターミナルで試してみました。他のデータベースでは、この関数は正しく機能します。

+2

上でテストすることができ、価格フィールドの形式は何ですか?あなたのサンプルデータのように、 '、'(カンマ)ではなく、小数点の区切り記号に '.'(ドット)を使用してください。 –

+2

値を以下のような文字列として保存していますか:http://rextester.com/YNEAG27721? –

+0

はい何らかの理由で10進数でデータを保存できなかったので、私はそれらをStringsに格納します。他のDBでは文字列でうまく動作します。 –

答えて

0

テーブルを小数点に変更することをお勧めします。

あなたがそれを行うことができない場合は、次のクエリは、あなたが望む結果を得る必要がありますが:

SELECT SUM(replace(price,',', '.')) FROM tbl; 

あなたはSQLFiddle

+0

はい、動作します!ビッグありがとう。それはまだ解決策であり、私はまだ小数点として私の数字を保存する方法を把握しようとしています! –

関連する問題