我无法使用查询获得预期的结果,我也不知道为什么。你能帮我解释一下吗? 所以基本上我只运行这样的标准查询:
SELECT a.bimbel_kode,c.kriteria_kode,d.pencarian_kode, b.osk_val,d.bsk_val,
((d.bsk_val/100)*b.osk_val) as total
FROM bimbel_sub a
INNER JOIN opsi_sub_kriteria b ON a.osk_id=b.osk_id
INNER JOIN sub_kriteria c on b.sk_id=c.sk_id
INNER JOIN bobot_sub_kriteria d ON c.sk_id=d.sk_id
WHERE d.pencarian_kode='KDS7808b075'
总的来说,我无法得到我想要的结果。
for the total must be like this
total = (bsk_val/100) * osk_val
total = 50/100 * 4
total = 2
But why my reults be 0.12 ?
这是我的 fiddle fiddle
最佳答案
您的答案是因为您使用的是 ENUM。将 ENUM 转换为整数时,您得到的是它的序列而不是它的值(因此 100 是 1,75 是 2,50 是 3,25 是 4,等等)。
如果你想避免这个问题,你应该将其转换为 varchar/char,然后再转换回来:
CAST(CAST(d.bsk_val AS CHAR) AS SIGNED) / 100 * b.osk_val
关于mysql - 使用乘法查询的结果不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634127/