从两个查询
问题描述:
下面结合字段是两个表我的工作:从两个查询
NBAGameLog:
Player_ID, Team, Minutes, Date_Played
玩家:
Player_ID, First Name, Last Name, Position
我有这两个查询现在:
AvgMP15:
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;
AvgMP:
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和季节。
这可能吗?
答
我想通了!
这里的查询:
SELECT DISTINCTROW p.FirstName, p.LastName, gl.Tm, ROUND(Avg(gl.MP),2) AS Season, ROUND(Avg(gl2.MP),2) AS Last15, ROUND((Last15-Season),2) AS Diff
FROM (NBAGameLog AS gl INNER JOIN Players AS p ON gl.Player_ID = p.Player_ID) INNER JOIN NBAGameLog AS gl2 ON gl2.Player_ID = gl.Player_ID
WHERE gl2.Date_Played Between Date()-15 And Date()
GROUP BY p.FirstName, p.LastName, gl.Tm
ORDER BY p.LastName;
你可能想显示的示例表,我们可以帮助你:) –
我想你的第一个查询得到的平均分在最近15天内玩过任何游戏,而不是最近的15场比赛,那是你想要的吗?如果玩家在过去15场比赛中未参赛,他/她将不会进入第一个查询,您是否希望她/他进入统一查询? –
优秀点!我添加了表格结构到我原来的问题(希望这是足够的细节)。 此外,你是正确的,只是最后15天,无论该玩家是否玩过。所以如果一个玩家在这15天内只有4场比赛,那么这些是唯一显示的比赛。但球员应该在两个查询中(他们在过去的15场比赛中只有0) – fullOfQuestions