2011-02-03 10 views
0

나는이 작업의 순서가 틀렸음을 확신합니다. 그때 마지막으로 소수 할인 된 금액으로 곱 가격과 수량 플러스 (100)으로 나눈 조세에 의한 가격과 수량을 곱하여하고할인 계산이 올바르지 않음

(`p`.`price`*`op`.`quantity`) * ((`p`.`tax_state`+`p`.`tax_fed`)/100) + (`p`.`price`*`op`.`quantity`) * `op`.`discount` as totaldisc, 

: 나는 다음과 같은 계산을해야합니다. 계산기로이 작업을 수행하면 올바른 할인을 얻을 수 있지만 SQL을 사용하면 몇 달러가 남습니다.

+1

왜 MySQL을 사용하여 수학을합니까? 정규 코드를 그대로 둡니다. –

답변

0

나는 연산자 우선 순위와 관련된 문제가 있다고 생각한다. 이 시도 : MySQL의 문서 사이트에서

(
    (`p`.`price`*`op`.`quantity`) * 
    ((`p`.`tax_state`+`p`.`tax_fed`)/100) + 
    (`p`.`price`*`op`.`quantity`) 
) * `op`.`discount` as totaldisc, 

발췌 : 라인이 같은 우선 순위가 에 함께 표시됩니다

연산자. 간격 이진, 일괄 적으로!
- (단항 마이너스) ~ (단항 비트 반전)^
*, /, DIV, %, MOD
-, + < < >> & |
= (비교) < =>,> =,>, < = <, <>,! =, THEN IN BETWEEN 등 REGEXP,
경우, ELSE NOT & &, IS AND XOR
||, 또는
= (대입) =

연산자 우선 순위 확인에 대한 자세한 내용은 :

http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html

+0

Cybermate에게 감사드립니다. 나는 그에게 총을 줄 것이다. – jim

+0

예 .. 그렇습니다. 고맙습니다. 우선 순위 결정 방법을 알려주시겠습니까? 나는 나 자신을 위해 그것을 추론 할 수 있어야하고 아주 솔직히, 나는 그것에 능숙하지 않다. – jim

+0

게시물을 일부 정보와 링크로 업데이트했습니다 ... – Chandu

0

총 가격 ((가격 * 수량) + ((가격 * 수량) + 세금/100)) 또는 세금없이 가격 만 할인하고 있습니까?

것은 당신이 가격 * 수량 할인을 제공하는 경우 것은 다음의 그렇지 않으면 브래킷 dicount

((p 앞에 위치해야 괜찮습니다. * opprice. quantity) * ((p. tax_state + p. tax_fed)/100) + (*)) * op. discount 총계,

관련 문제