【问题标题】:MS Access SQL Sum without GROUP BY没有 GROUP BY 的 MS Access SQL Sum
【发布时间】:2018-08-07 10:41:41
【问题描述】:

我正在尝试将 Sum 'field' 添加到 SELECT 查询中,在其中汇总该行上的数据,并将其作为字段返回。问题似乎在于我似乎必须使用的 GROUP BY 语句。使用它时,它将“总和”组合在一起,而不是为每行数据提供总计。

SELECT PS_DB.TeamName AS [Team Name], TM_adjData.SM_adjName AS Adjudicator, PS_DB.WeekEnding AS [Week Ending], PS_DB.Pts AS [BAU Points], PS_DB.Adhc, Sum(PS_DB.Pts + PS_DB.Adhc) as [Total], PS_DB.Approved AS Approved
FROM PS_DB
LEFT JOIN TM_adjData on PS_DB.Adjudicator = TM_adjData.SM_empNum
GROUP BY TeamName, SM_adjName, WeekEnding, Pts, Adhc, Approved

这将返回 518 行,就像我删除 GROUP BY 部分和“总和”字段一样,它返回 1,608 行(这是正确的)。

如何获得 1,608 行以及旁边的总和?

【问题讨论】:

  • 样本数据和期望的结果会有所帮助。

标签: sql database ms-access


【解决方案1】:

我认为您可以使用相关子查询做您想做的事:

SELECT p.TeamName AS [Team Name], a.SM_adjName AS Adjudicator, 
       p.WeekEnding AS [Week Ending], p.Pts AS [BAU Points], p.Adhc,
       (SELECT SUM(p2.Pts + p2.Adhc)
        FROM PS_DB as p2
        WHERE p2.TeamName = p.TeamName  -- perhaps more conditions are needed
       ) as [Total],
       p.Approved AS Approved
FROM PS_DB as p LEFT JOIN
     TM_adjData as a
     ON p.Adjudicator = a.SM_empNum;

【讨论】:

  • 感谢 Gordon - 这导致行数正确,但总和不正确。乐于提供示例数据和结果,但不确定编辑帖子时的最佳格式?
  • @RazorKillBen 。 . .您的问题没有提供足够的信息来确定您想要的金额。您需要根据答案指定调整相关性子句。
【解决方案2】:

如果您想对每一行进行求和,则不要对行进行分组,而只需执行加法。我添加了Nz() 函数来正确解决添加的任何值都为空并将其视为 0 的问题:

SELECT 
  PS_DB.TeamName AS [Team Name], 
  TM_adjData.SM_adjName AS Adjudicator, 
  PS_DB.WeekEnding AS [Week Ending], 
  PS_DB.Pts AS [BAU Points], 
  PS_DB.Adhc, 
  Nz(PS_DB.Pts,0) + Nz(PS_DB.Adhc,0) as [Total], -- this is your row sum
  PS_DB.Approved AS Approved
FROM PS_DB
LEFT JOIN TM_adjData on PS_DB.Adjudicator = TM_adjData.SM_empNum

SUM 是一个聚合函数,它适用于整个表或数据组(使用GROUP BY)。

【讨论】:

  • 这是我的原始查询(几乎),但 MS Access SQL 中无法识别 COALESCE 函数。
  • 感谢@Kamil - 这确实解决了这个问题。我意识到 SUM() 函数是阻止它工作的原因。
  • @RazorKillBen 更改为 Nz() MS Access 中可用的函数。
猜你喜欢
  • 2017-08-08
  • 2011-04-18
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 2015-05-02
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多