我在SQL語句中遇到SUM問題。我正在使用MSSQL 2014
版本和Management Studio版本12.0.2000.8。SQL SUM邏輯錯誤
我想根據他們的比例貢獻和總收入的60%從表格中獲取每個人的紅利。 每當我用SUM(TotalShares)我得到具有相同的股息(股息總額)的所有股份持有人如
SELECT Names, MemGrpID, GtotalIncome, TotalShares, (GTotalIncome*0.6)*
((TotalShares)/SUM(TotalShares)) AS Dividends FROM tblDivedends GROUP BY
Names, MemGrpID, GTotalIncome, TotalShares
當我做上面的我只能獲得相同的股息每名(總股息)和是錯的。
**Names MemGrpID GTotalIncome TotalShares Dividends**
*Kevin Onyango Otieno 8484 30260.97 8000 18456.582000
*Paul Anam Otieno 6060 30260.97 5000 18456.582000
*Simon Kimani 8526 30260.97 1000 18456.582000
但是,如果只是直接或手動輸入TotalShares的數字(即14000),我會得到正確的分配。
SELECT Names, MemGrpID, GtotalIncome, TotalShares, (GTotalIncome*0.6)*
((TotalShares)/SUM(14000.00)) AS Dividends FROM tblDivedends GROUP BY
Names, MemGrpID, GTotalIncome, TotalShares
Names MemGrpID GTotalIncome TotalShares Dividends
*Kevin Onyango Otieno 8484 30260.97 8000 10375.179339
*Paul Anam Otieno 6060 30260.97 5000 6484.478009
*Simon Kimani 8526 30260.97 1000 1296.888339
順便說一句,如果我
SELECT SUM(TotalShares) As TotS from tblDivedends
我得到正確的結果爲14000.00。
嗨米哈伊,好極了,你的方法也工作得很好。子查詢搖滾!謝謝你們。 Stackoverflow永遠!會樂意讓你高興。這樣做的方式?謝謝 – Simon