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。