【发布时间】:2014-02-28 09:26:03
【问题描述】:
这是我正在使用的两张表:
NBA游戏日志:
Player_ID, Team, Minutes, Date_Played
玩家:
Player_ID, First Name, Last Name, Position
我现在有这两个查询:
平均 MP15:
SELECT DISTINCTROW Players.FirstName, Players.LastName, Players.Position, NBAGameLog.Tm, ROUND(AVG(AvgMP1),2) AS AvgMP
FROM (SELECT Players.FirstName, Players.LastName, Players.Position, NBAGameLog.Tm, ROUND(AVG(NBAGameLog.MP),2) As AvgMP1
FROM NBAGameLog INNER JOIN Players ON NBAGameLog.Player_ID = Players.Player_ID
WHERE (((NBAGameLog.Date_Played) Between Date()-15 And Date()))
GROUP BY NBAGameLog.Date_Played, Players.Position, NBAGameLog.FD_Points, Players.FirstName, Players.LastName, NBAGameLog.Tm, Players.Player_ID) AS [%$##@_Alias]
GROUP BY Players.FirstName, Players.LastName, Players.Position, NBAGameLog.Tm;
平均MP:
SELECT DISTINCTROW p.FirstName, p.LastName, gl.Tm, ROUND(Avg(gl.MP),2) AS AvgMPS
FROM NBAGameLog AS gl INNER JOIN Players AS p ON gl.Player_ID = p.Player_ID
GROUP BY p.FirstName, p.LastName, gl.Tm
ORDER BY Avg(gl.MP) DESC;
第一个给我一个球员的名字、位置、球队和他最近 15 场比赛的平均上场时间。
第二个是他整个赛季的平均出场时间。
我想比较这两个,所以我想要一个拉取的查询:
名字、姓氏、位置、球队、过去 15 场比赛的上场时间、整个赛季的上场时间、15 场与赛季之间的差异。
这可能吗?
【问题讨论】:
-
您可能想展示一个示例表,以便我们为您提供帮助:)
-
我认为您的第一个查询会获得过去 15 天(而不是过去 15 场比赛)的平均分钟数,这是您想要的吗?如果一名球员在过去 15 场比赛中没有参加过比赛,他/她将不会出现在第一个查询中,您是否希望她/他出现在合并查询中?
-
优秀的积分!我将表格结构添加到我原来的问题中(希望这已经足够详细了)。另外,你说得对,莱文,这只是过去 15 天,不管那个球员是否上场。因此,如果一名玩家在这 15 天内只有 4 场比赛,那么这些比赛就是唯一显示的比赛。但是玩家应该在两个查询中(最后 15 个只有 0)