私の問題は次のとおりです。さまざまなユーザーのプレイしたゲームとゲームのスコアを組み合わせ、2 つの部分の計算で集計関数を使用して合計スコアを取得する MS SQL クエリがあります。何らかの理由で、計算の一部 (計算の最初の部分 - プレイしたゲーム) が合計スコア (私はこれを Algoscore と呼んでいます) に使用されていません。クエリは次のとおりです。
SELECT TOP 10
COUNT(TourScore.TourScoreID) AS GameCount,
AVG(GameScore.GameScore) AS AVGScore,
Users.UserID, Users.DisplayName,
(((COUNT(TourScore.TourScoreID) / 750) * .50) * 100)
+ (((AVG(GameScore.GameScore) / 14695) * .50) * 100) AS Algoscore
FROM TourScore INNER JOIN GameScore
ON TourScore.GameScoreID = GameScore.GameScoreID
INNER JOIN Users
ON GameScore.UserID = Users.UserID
WHERE (GameScore.ScoreDate BETWEEN '01/01/2013' AND '06/01/2013')
GROUP BY Users.UserID, Users.DisplayName
ORDER BY Algoscore DESC
SELECT: の計算部分は、
(((COUNT(TourScore.TourScoreID) / 750) * .50) * 100) + (((AVG(GameScore.GameScore) / 14695) * .50) * 100) AS Algoscore
基本的に計算の最初の部分を無視しています。(((COUNT(TourScore.TourScoreID) / 750) * .50) * 100)
2 番目の部分は正常に計算されているため、クエリを実行するAlgoscore
と、式の最初の部分と 2 番目の部分が結合されたものではなく、式の 2 番目の部分のみになります。
これが理にかなっていることを願っています。これに関するアドバイスはありますか?別の値を取得するために、集計関数を含む式を使用して、このようなクエリを実行することはできますか?