1

我有一张表格,记录了我正在开发的体育应用程序的所有得分情况。我试图从得分表中找出一个球员有多少次助攻。有一个主要助攻和一个次要助攻,所以我试图使用一个返回总助攻的值COUNT(*) WHERE...

我正在使用以下 SQL 语句:

SELECT COUNT(*) FROM teamassist13.AllScoringPlays WHERE GameId = 6124 AND SeasonId = 1 AND P_AssistId = 21 OR S_AssistId = 21;

这给了我游戏 6124 的准确得分(它返回用户有 2 次助攻),但是当我切换GameId到 6125 时,它显示用户有 1 次助攻,而他们应该有 0 次助攻。

我也试过以下说法:

SELECT COUNT(*) FROM AllScoringPlays WHERE GameId = 6124 AND SeasonId = 1 AND (P_AssistId = 21 OR S_AssistId = 21);

然后告诉我球员有 1 次助攻GameId6124(不准确,应该是 2),0 次助攻GameId6125(准确)。

`GameId` 6125 should return 0 assists
`GameId` 6124 should return 2 assists

这是我当前正在查询的视图的结构:

| GameId | TeamId | SeasonId | LeagueId | GoalId | P_AssistId | S_AssistId |
   6124      1         1           1        20        21             23
   6124      1         1           1        19        20             21

它似乎绕过了 OR 语句,我不知道如何解决这个问题。任何帮助表示赞赏。

4

1 回答 1

0

您的第二个查询是正确的:

SELECT COUNT(*) FROM AllScoringPlays WHERE GameId = 6124 AND SeasonId = 1 AND
(P_AssistId = 21 OR S_AssistId = 21);
于 2013-04-23T01:35:47.833 回答