使用@variable_Name时如何更改变量类型?

时间:2017-01-31 02:37:30

标签: mysql variables

我尝试计算所有库存中某些库存的百分比(位置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类型显示真实的百分比?

1 个答案:

答案 0 :(得分:1)

您可以强制转换为十进制/浮点数,或者只乘以1.0:

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

实际上,这太过分了。只需将DIV更改为/

即可
SELECT @percentage := @locid3and4 / @totalInv;

如果你不想要它,你为什么选择整数除法?