Mysql 折扣计算不正确
我确信我这样做的顺序是错误的。我的计算如下:Mysql 折扣计算不正确,mysql,Mysql,我确信我这样做的顺序是错误的。我的计算如下: (`p`.`price`*`op`.`quantity`) * ((`p`.`tax_state`+`p`.`tax_fed`)/100) + (`p`.`price`*`op`.`quantity`) * `op`.`discount` as totaldisc, 我将价格和数量乘以税收除以100,再加上价格和数量,最后乘以十进制折扣金额。当我使用计算器时,我得到了正确的折扣,但使用SQL时,我只减少了几美元。我认为这是运算符优先级的问题。试试这
(`p`.`price`*`op`.`quantity`) * ((`p`.`tax_state`+`p`.`tax_fed`)/100) + (`p`.`price`*`op`.`quantity`) * `op`.`discount` as totaldisc,
我将价格和数量乘以税收除以100,再加上价格和数量,最后乘以十进制折扣金额。当我使用计算器时,我得到了正确的折扣,但使用SQL时,我只减少了几美元。我认为这是运算符优先级的问题。试试这个:
(
(`p`.`price`*`op`.`quantity`) *
((`p`.`tax_state`+`p`.`tax_fed`)/100) +
(`p`.`price`*`op`.`quantity`)
) * `op`.`discount` as totaldisc,
摘自MySQL文档网站:
上一起显示的运算符
一行具有相同的优先级。
区间二进制,整理!
-一元负,~一元位反转^
*,/,DIV,%,MOD
-, + & |
=比较,>=,>,你们是对总价*数量+价格*数量+税/100给予折扣,还是仅对无税价格给予折扣 若你们提供的是价格*数量折扣,那个么它是可以接受的,否则括号必须放在结算前
p.price*op.quantity*p.tax\u state+p.tax\u fed/100+p.price*op.quantity*op.折扣作为totaldisc,你为什么要用MySQL做数学计算?把它留给常规代码。谢谢你。我现在就试试看。是的。。成功了。非常感谢。你能告诉我你是如何决定优先顺序的吗?“我需要能够自己推断出这一点,老实说,我不太擅长。”吉姆,如果这个答案解决了你的问题。考虑通过点击这个答案旁边的嘀嗒记号来回答这个问题。如果你喜欢这个答案,你可以考虑点击上面的箭头来投票。感谢链接和相关的粘贴手册,Cymail。