在Access中创建一个双赢记录查询

时间:2016-10-06 12:38:05

标签: ms-access ms-access-2013

如果我犯了一些语法错误,请提前抱歉。问题在于,我正在使用诸如" Fighters"等表格制作MMA数据库。和#34;战斗"。

在桌子"战斗"我有两个领域: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

我尝试了很多不同的组合,查询,但总是搞砸了名字重复,不正确的记录...... 如果我可以进行此查询,那么剩下的就是小菜一碟。我觉得我已经到了一半,但我完全被封锁了。

如果您需要截图或更多信息请问,英语不是我的第一语言,而且很难解释自己。提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用两个表格 - FightsFighters

enter image description here

此查询将返回总的胜利/损失:

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

给出这个结果:
enter image description here

在设计视图中,查询将如下所示:
注意:我没有对表名或结果字段别名,因此生成的查询将以CountOfWINNERCountOfLoser作为字段名称)。 enter image description here