我尝试计算所有库存中某些库存的百分比(位置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。
我尝试将列数量从整数更改为DOUBLE / DECIMAL,但是@percentage总是返回0.我想知道有没有办法让@percentage的alter data类型显示真实的百分比?
答案 0 :(得分:1)
您可以强制转换为十进制/浮点数,或者只乘以1.0:
SELECT @percentage := @locid3and4 * 1.0 / @totalInv;
实际上,这太过分了。只需将DIV
更改为/
:
SELECT @percentage := @locid3and4 / @totalInv;
如果你不想要它,你为什么选择整数除法?