2014-06-19 3 views
1

SQL에서는 좋지 않지만 일반적인 SQL 쿼리를 만들 수 있습니다. 그물을 샅샅이 뒤지는 동안이 쿼리에 적합한 방법을 찾는 것이 어려워 보인다.mysql은 쿼리 된 두 필드의 결과와 차이가 있습니다.

나는

SELECT COUNT(`BetID`), 
     FORMAT(SUM(`BetAmount`),0), 
     FORMAT(SUM(`Payout`),0), 
     ROUND((SUM(`BetAmount`)/COUNT(`BetID`)),2), 
     ROUND((((SUM(`BetAmount`) + SUM(`Payout`))/SUM(`Payout`)) * 100),2) 
FROM `betdb` 

인 쿼리 나는이 MySQL의 쿼리에서 빼기를 실행

FORMAT(SUM(`BetAmount`),0) 

FORMAT(SUM(`Payout`),0) 

다른 아이디어의 결과를 뺄 싶습니다있다 ?

답변

0

당신은 숫자가 (당신이 형식의 숫자를 빼기 할 때 사건을 것으로 보인다)을 뺀 전에 둥근하려면 ' 먼저 형식화와 동일한 정밀도로 반올림하고 결과를 빼고 마지막으로 형식화해야합니다.

SELECT COUNT(`BetID`), 
     FORMAT(SUM(`BetAmount`),0), 
     FORMAT(SUM(`Payout`),0), 
     FORMAT(ROUND(SUM(`BetAmount`),0) - ROUND(SUM(`Payout`),0),0) diff, 
     ROUND((SUM(`BetAmount`)/COUNT(`BetID`)),2), 
     ROUND((((SUM(`BetAmount`) + SUM(`Payout`))/SUM(`Payout`)) * 100),2) 
FROM `betdb` 

A simple SQLfiddle to test with.

+0

오, 알겠 니, 빼기 전에 숫자를 반올림해도 괜찮습니다. 감사합니다! – hikki

0

사용 FORMAT((SUM(BetAmount) - SUM(Payout)),0)

이 시도 :

SELECT COUNT(`BetID`), 
     FORMAT(SUM(`BetAmount`),0), 
     FORMAT(SUM(`Payout`),0), 
     FORMAT((SUM(`BetAmount`) - SUM(`Payout`)),0), 
     ROUND((SUM(`BetAmount`)/COUNT(`BetID`)),2), 
     ROUND((((SUM(`BetAmount`) + SUM(`Payout`))/SUM(`Payout`)) * 100),2) 
FROM `betdb` 
+0

아 그렇군요 당신에게 선생님 감사합니다! – hikki

0

또한 계산 한 번만 수행되도록 문을 조인을 사용 시도 할 수 :

SELECT *,t.BetTotal - t.PayoutTotal as Difference 
FROM (
    SELECT 
     COUNT(`BetID`) AS Count, 
     FORMAT(SUM(`BetAmount`),0) as BetTotal, 
     FORMAT(SUM(`Payout`),0) as PayoutTotal, 
     ROUND((SUM(`BetAmount`)/COUNT(`BetID`)),2), 
     ROUND((((SUM(`BetAmount`) + SUM(`Payout`))/SUM(`Payout`)) * 100),2) 
    FROM `betdb` 
) as t