2017-01-31 6 views
0

私は、すべてのインベントリのうち特定のインベントリ(ロケーションID(loc_id)3およびロケーションID 4)のパーセンテージを計算しようとしました。私の試みは以下の通りでした:@variable_Nameを使用する際の変数型の変更方法は?

SELECT @totalInv := (SELECT SUM(Quantity) FROM inventory); 

SELECT @locid3and4 := (SELECT SUM(Quantity) FROM inventory 
         WHERE loc_id=3 or loc_id=4); 

SELECT @percentage := ((@locid3and4)DIV(@totalInv)); 

手動計算で私はパーセンテージが0.346になるはずです。しかし、@percentageはデフォルトのデータ型が整数であり、mySQLが値を0.346から0に丸めるため、おそらく0を返します。

整数の列のデータ型をDOUBLE/DECIMAL、@percentageに変更しようとしました常に0を返します。真のパーセンテージを表示するために@percentageのデータ型を変更する方法があるのだろうか?

答えて

1

あなたは浮動小数点数/小数点にキャスト、またはちょうど1.0を掛けすることができます

SELECT @percentage := @locid3and4 * 1.0/@totalInv; 

実は、それはやり過ぎです。ただ、/DIVを変更します。

SELECT @percentage := @locid3and4/@totalInv; 

あなたがそれをしたくない場合は、なぜあなた整数の除算を選んでいますか?

関連する問題