在Access中进行输赢记录查询

Making a win-lose record query in Access

如果我犯了一些语法错误,请提前道歉。问题是我正在制作一个包含 table 的 MMA 数据库,例如 "Fighters" 和 "Fights"。

在 table "Fights" 中,我有两个字段:WINNER 和 LOSER,因此,为了查看一名战士赢或输了多少场比赛,我做了两个查询:一个是计算获胜,另一个计算损失。但是我觉得有点没用。

SQL 视图中的查询:

SELECT FIGHTS.WINNER, Count(FIGHTS.WINNER) AS WIN
FROM FIGHTS
GROUP BY FIGHTS.WINNER;
___

SELECT FIGHTS.LOSER, Count(FIGHTS.LOSER) AS LOSE
FROM FIGHTS
GROUP BY FIGHTS.LOSER;

结果:

WINNER              WINS
Raquel Pennington   1
Sara McMann         1
Sarah D'Alelio      2
Sarah Maloy         1
____

LOSER               LOSE
Kaitlin Young       2
Lacey Schuckman     1
Lisa Ellis          1
Meghan Wright       1

我想要一个显示输家的查询,反之亦然,所以它可能是这样的:

WINNER              WINS
Raquel Pennington   1
Sara McMann         1
Sarah D'Alelio      2
Sarah Maloy         1
Kaitlin Young       0
Lacey Schuckman     0
Lisa Ellis          0
Meghan Wright       0
___
LOSER               LOSE
Kaitlin Young       2
Lacey Schuckman     1
Lisa Ellis          1
Meghan Wright       1
Raquel Pennington   0
Sara McMann         0
Sarah D'Alelio      0
Sarah Maloy         0

我尝试了很多不同的组合、查询,但结果总是搞砸了名称重复、记录不正确... 如果我能提出这个问题,那么剩下的就小菜一碟了。感觉自己说到一半了,但是完全堵住了

如果您需要屏幕截图或更多信息,请直接询问,英语不是我的第一语言,我自己也很难解释清楚。提前致谢。

使用两个 tables - FightsFighters

此查询将 return 总数 Wins/Losses:

SELECT  Fighter
        , COUNT(F1.WINNER) AS Wins
        , COUNT(F2.LOSER) AS Losses
FROM    (Fighters LEFT JOIN Fights F1 ON Fighters.Fighter = F1.Winner)
                  LEFT JOIN Fights F2 ON Fighters.Fighter = F2.Loser
GROUP   BY Fighter

给出这个结果:

在设计视图中,查询如下所示:
注意:我没有为 table 名称或结果字段添加别名,因此生成的查询将具有 CountOfWINNERCountOfLoser 作为字段名称)。