我在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