내 문제는 다음과 같습니다. 다른 사용자의 게임과 게임 점수를 합친 MS SQL 쿼리가 있고 두 부분 계산에서 집계 함수를 사용하여 종합 점수. 어떤 이유로 계산의 한 부분 (계산의 첫 번째 부분 - 게임 한 게임)이 전체 점수에서 사용되지 않고 있습니다 (저는 이것을 Algoscore라고 부릅니다). 쿼리는 다음과 같습니다 :SQL 쿼리 문제 : 쿼리의 일부분에 영향을 미치지 않음
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)
나는를 실행하므로 쿼리의 경우 Algoscore
은 방정식의 두 번째 부분 일 뿐이며 방정식의 첫 번째와 두 번째 부분은 결합되어 있지 않습니다.
나는 이것이 의미가 있기를 바랍니다. 이것에 대한 조언? 다른 값을 얻기 위해 집계 함수가있는 방정식을 사용하여 이와 같은 쿼리를 실행할 수 있습니까?
당신이 어떻게 첫 번째 부분을 무시에 정교한 수 있습니까? 0을 반환한다는 의미입니까? – Gramma2005
'TourScore.TourScoreID' 또는 GameScore.GameScore' nullable 필드입니까? –
Algoscore 계산시 첫 번째 부분 만 사용하지 않습니다. 기본적으로 방정식의 두 번째 부분 만 사용합니다. (((AVG (GameScore.GameScore)/14695) * .50) * 100) Algoscore를 계산하고 첫 번째 부분을 전혀 사용하지 않습니다 (완전히 무시하고 있음). (((COUNT (TourScore.TourScoreID)/750) * .50) * 100). – thenextmogul