我尝试计算某些库存(位置 ID (loc_id) 3 和位置 ID 4)占所有库存的百分比。我的尝试如下:
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。
我试图将数量列的数据类型从整数更改为双/小数,但@percentage总是返回0。我想知道是否有一种方法可以改变@percentage的数据类型以使其显示真实的百分比?
最佳答案
您可以转换为小数/ float ,或者仅乘以 1.0:
SELECT @percentage := @locid3and4 * 1.0 / @totalInv;
事实上,这太过分了。只需将 DIV
更改为 /
:
SELECT @percentage := @locid3and4 / @totalInv;
如果您不想要,为什么要选择整数除法?
关于mysql - 使用@variable_Name时如何更改变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948836/