サードパーティ製品のSQLServer2008データベースで次のクエリを使用して、いくつかのレポートを生成します。
SELECT ROUND(SUM(Price),0,1) AS SumNetPrice FROM Transactions
例えば
SUM(Price): 1.2345678
ROUND(SUM(Price),0,1): 1
これはこれまで正常に機能し、小数点以下の桁数をすべて削除しました。実際、不思議なことに、ROUND関数のMSDN情報http://msdn.microsoft.com/en-us/library/ms175003.aspxに従って3番目のパラメーターを指定しなかった場合でも、結果は切り捨てられました。
サードパーティ企業は、Price列のデータ型を「real」からdecimal(22、7)に変更しました。残念ながら、これは、ROUND関数の切り捨てオプションを使用した場合でも、常に小数点以下7桁になることを意味します。だから今私は得る:
ROUND(SUM(Price),0,1): 1.0000000
ROUND(expression、0,1)は結果を切り捨てて、小数点以下の桁数を取得しないようにするべきではありませんか?SQLクエリの結果からこれらの小数点以下の桁数を削除するにはどうすればよいですか?