2017-01-31 46 views
0

我試圖計算所有庫存中的某些庫存(位置標識(loc_id)3和位置標識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總是返回0,可能是因爲它的默認數據類型是整數,mySQL將該值從0.346降低到0.

我試圖將列數量的數據類型從整數更改爲DOUBLE/DECIMAL,@percentage但是總是返回0.我想知道是否有辦法使@percentage的改變數據類型,使其顯示真正的百分比?

回答

1

您可以通過1.0轉換爲十進制/浮點數,或者只是乘:

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

其實,這是矯枉過正。只要改變DIV/

SELECT @percentage := @locid3and4/@totalInv; 

你爲什麼選擇整數除法,如果你不想要嗎?