【问题标题】:Two SUMS with Different Grouping具有不同分组的两个 SUMS
【发布时间】:2014-02-28 14:56:32
【问题描述】:

我有两张表,GameLog 和 Players:

游戏日志:

Player_ID, Team, FGA, Date_Played

玩家:

Player_ID, FirstName, LastName

我有两个查询对 FGA 求和,然后分别按球队和球员分组:

SELECT gl.Tm, SUM(gl.FGA) As TmFGA, gl.Date_Played
FROM GameLog gl
GROUP BY gl.Date_Played, gl.Tm;

结果如下:

Team     TmFGA     Date_Played
GSW      84        2/26/2014
UTA      74        2/26/2014

然后:

SELECT p.FirstName, p.LastName, gl.Tm, SUM(gl.FGA) AS FGA, gl.Date_Played
FROM GameLog AS gl INNER JOIN Players AS p ON p.Player_ID = gl.Player_ID
GROUP BY gl.Date_Played, gl.Tm, p.LastName, p.FirstName;

结果如下:

FirstName     Lastname     Team     FGA     Date_Played
Andrew        Bogut        GSW      5       2/26/2014
Steve         Blake        GSW      6       2/26/2014
Derrick       Favors       UTA      7       2/26/2014

显然这些只是部分结果,但你明白了。

最终目标是一个查询,它对 FGA 与球队的总 FGA 进行比较,但第一步是将球员的 FGA 和他的球队的总 FGA 放入同一个查询中。

所以现在的第一步是得到这样的结果:

FirstName     LastName     Team     FGA     TmFGA     Date_Played
Andrew        Bogut        GSW      5       84        2/26/2014
Steve         Blake        GSW      6       84        2/26/2014
Derrick       Favors       UTA      7       74        2/26/2014

附带说明,每当我运行播放器特定查询时,我都会收到一个提示,询问“Query1.FirstName”。当我单击“确定”时,它会运行,但知道为什么会出现此提示吗?

【问题讨论】:

    标签: sql ms-access group-by


    【解决方案1】:
     SELECT y.FirstName, y.LastName, y.Tm, y.FGA, y.Date_Played,x.TmFGA FROM
    (SELECT p.FirstName as FirstName, p.LastName as LastName, gl.Tm as Tm, SUM(gl.FGA) AS FGA,
            gl.Date_Played as Date_Played
    FROM GameLog AS gl INNER JOIN Players AS p ON p.Player_ID = gl.Player_ID
         GROUP BY gl.Date_Played, gl.Tm, p.LastName, p.FirstName)y
    JOIN 
    (SELECT Tm, SUM(FGA) As TmFGA, Date_Played
    FROM GameLog 
    GROUP BY Date_Played, Tm)x
    ON x.Tm=y.Tm
    

    【讨论】:

    • 这似乎很接近,但我在最后一次 JOIN 时遇到语法错误。我需要在两个 JOIN 周围加上某种括号吗?
    • 查询表达式'p.FirstName JOIN中的语法错误(缺少运算符)(选择Tm,Sum(FGA)作为TmFGA Date_Played FROM GameLog GROUP BY Date_Played,Tm)x ON x.Tm=gl.Tm '
    • 更接近。我注意到的第一件事是最后一行应该是 ON x.Tm=y.Tm。现在它正在运行但没有获取 TmFGA,当我单击运行时,它要求我输入 x.TmFGA 的参数值
    • 你有一个提示变量看这里office.microsoft.com/en-001/access-help/…至于为什么它没有得到TmGFA我没看到。
    猜你喜欢
    • 2013-12-30
    • 2019-12-28
    • 2012-12-27
    • 1970-01-01
    • 2021-09-05
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多