2014-04-14 15 views
1

我的數據是這樣的:MySQL的:獲取總共小時,然後用速度繁殖,然後在一個SELECT語句四捨五入

UserID Hours BillRate 
1 1.50 2.25 
1 2.50 3.25 
1 3.50 3.25 
2 5.50 4.25 
2 6.50 5.25 
2 7.50 5.25 

反正是有,我可以得到總支出中的每個人一個SELECT語句? 這就是我所擁有的。它返回我想要的,但我必須做2個SELECT語句。

SELECT UserID, SUM(OneSpend) AS TotalSpend 
FROM (
    SELECT UserID, ROUND(SUM(Hours)*BillRate,2) AS OneSpend 
    FROM mytable 
    GROUP BY UserID, BillRate 
) a 
GROUP BY UserID 

回答

2
SELECT UserID, ROUND(SUM(Hours*BillRate), 2) AS TotalSpend 
FROM mytable 
GROUP BY UserID 

根據乘過另外分配律,SUM(Hours)*BillRate相同SUM(Hours * BillRate)當所有BillRate值是相同的,因爲它們是當你按BillRate

+1

您的select子句看起來不完整。 –

+0

看起來很對我。 – smoore4

+0

Barmar,謝謝!這樣可行。我曾經這樣做,但不知何故,它返回錯誤的結果。我用不同的數據集測試了你的查詢,並且它能正常工作。 – vina