MS ACCESS SQL查询两个表获取varius数据

时间:2014-10-20 19:00:10

标签: sql ms-access

我是SQL新手,无法设置此查询。我有两个表,一个包含有关团队的信息,名为TEAMS,如下所示:

小组

Name|City|Attendance
Jets|  NY| 50
...

另一个持有游戏信息,名为GAMES:

游戏

Home|Visitors|Date     |Result
Jets| Broncos| 1/1/2012| Tie
...

对于这个特定的查询,我需要找到每个拥有一个或多个主场比赛的球队,给出球队名称,胜利数量,失败数量和关系数量。我无法弄清楚如何合并数据,我已经做了几个查询,分别找到了损失,胜利和关系的数量,但我不知道如何正确加入或甚至是正确的方法。谢谢!

1 个答案:

答案 0 :(得分:0)

这应该让你非常接近,但如果不完全理解你的数据,我真的无法给你一个完美的工作查询,但至少你可以看到连接的样子。

SELECT TeamName, SUM(SWITCH(Result = 'Win', 1)) AS Wins, SUM(SWITCH(Result = 'Tie', 1)) AS Ties, SUM(SWITCH(Result = 'Loss', 1)) AS Loss 
FROM Teams INNER JOIN Games ON (Teams.TeamName = Games.Home OR Teams.TeamName = Games.Visitors)
GROUP BY TeamName
HAVING MAX(SWITCH(Teams.TeamName = Games.Home, 1)) = 1;

更好的数据库设计是在游戏桌中拥有ID而不是团队名称,并且还有类似" Tie"," Win",&#的描述34;损耗"我不确定哪个团队引用(显然领带很容易),所以现在查询只需要该列中的任何内容,我确定这是不正确的,但它应该是修改它的一个小改动。