如何对一组和进行求和? SQL Server 2008

2024-04-14

我有一个查询sum像这样:

SELECT
    Table1.ID, SUM(Table2.[Number1] + Table2.[Number2]) AS SumColumn
FROM         Table1 INNER JOIN
                      Table3 ON Table1.ID = Table3.ID 
                    INNER JOIN
                      Table2 ON Table3.ID = Table2.ID
WHERE     (Table2.[Something] = 'Whatever')

GROUP BY Table1.ID,  Table2.[Number1] , Table2.[Number2]

它给了我一个像这样的表:

ID  SumColumn
67  1
67  4
70  2
70  6
70  3
70  6
80  5
97  1
97  3

我怎样才能让它给我一个像这样的表,其中 SumColumn 被求和,并按 ID 列分组?

ID   SumColumn
67   5
70   17
80   5
97   4

我不能GROUP BYSumColumn 因为我收到错误(无效的列名称“SumColumn”。)COALESCE也不行。提前致谢。

EDIT:

仅按 ID 分组会出现错误:

[Number1、Number2 和我选择的其他列名称] 在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。

EDIT 2

不知道为什么,但现在仅按 Table.ID 分组似乎可以工作。感谢所有发布正确答案的人,我希望我能全部勾选!


你有没有尝试过:

SELECT
    Table1.ID, SUM(Table2.[Number1] + Table2.[Number2]) AS SumColumn
FROM         Table1 INNER JOIN
                      Table3 ON Table1.ID = Table3.ID 
                    INNER JOIN
                      Table2 ON Table3.ID = Table2.ID
WHERE     (Table2.[Something] = 'Whatever')
GROUP BY Table1.ID

我不明白为什么上面的方法不起作用,除非你没有在查询中适当地为表添加别名,这更多的是语法错误而不是逻辑错误,但无论如何从 SQL 引擎的角度来看都是“错误的”。每当 SQL 代码对我不起作用时,我简化 令人作呕我的查询,直到它失败的原因变得明显。本着这种精神,我会尝试:

SELECT ID, SUM(sumCol) as SumColumn
FROM (
    SELECT
        Table1.ID, (Table2.[Number1] + Table2.[Number2]) AS sumCol
    FROM         Table1 INNER JOIN
                          Table3 ON Table1.ID = Table3.ID 
                        INNER JOIN
                          Table2 ON Table3.ID = Table2.ID
    WHERE     (Table2.[Something] = 'Whatever')
)
GROUP BY Table1.ID

...并且我允许以下(和嵌套查询!)中出现的任何错误来通知我的进一步调查。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对一组和进行求和? SQL Server 2008 的相关文章

随机推荐

  • 对于在 Python3 中的 Tornado 上使用非阻塞 MySQL api 有什么建议吗?

    我希望tornado支持异步sql数据库操作 在我阅读源代码之后 http www tornadoweb org documentation modules tornado database html Connection http www
  • WHOIS 服务器守护进程

    是否有任何 WHOIS 服务器守护程序可以在我的服务器上运行并服务我的请求 是否可以像 DNS 服务器一样在 WHOIS 层次结构的末尾部署自己的 WHOIS 服务器 看一眼rwhois https www rfc editor org r
  • Request.Unvalidated 在 asp.net-core 上在哪里?

    我注意到在classic ASP NET MVC有一个Unvalidated属性于Request它允许访问当前请求提供的原始值 我无法在 ASP NET MVC 上识别此属性Core 还有办法访问该信息吗 ASP NET Core 不具有与
  • 为什么Java需要Serialized接口?

    我们大量地进行序列化工作 并且必须在我们使用的每个对象上指定可序列化标签是一种负担 尤其是当它是我们无法真正更改的第 3 方类时 问题是 由于 Serialized 是一个空接口 一旦添加 Java 就会提供健壮的序列化implements
  • Django:重建通过 $.post 发送的结构化参数

    我正在发送带有结构化发布数据的 Ajax 请求 使用 jQuery post myUrl items code a description aaa code b description bbb 我所看到的request POST is
  • 签名 APK 中的空响应 - 调试 APK 中的正确响应

    我正在使用 Retrofit 进行网络调用 我在签名 APK 时面临奇怪的问题 改造请求 FormUrlEncoded Headers Accept application json POST Call
  • 如何在 VB.NET 中每 x 分钟调用一个函数?

    如何每 x 分钟调用一个函数 我想我必须在表单中添加一个计时器 这是一个简单的例子 Public Class SampleCallEveryXMinute Private WithEvents xTimer as new System Wi
  • 总是在 Perl 脚本结束之前执行一些代码

    如何设置在 Perl 脚本停止之前必须执行的代码 In here 如何在perl脚本退出之前运行一段代码 https stackoverflow com questions 3078508 how to run piece of code
  • 调用app.MainLoop()后更新wxPython进度条

    我有一个执行计算的 python 脚本 并且我已经为弹出 wxPython 进度条创建了一个类 目前我有 app wx App progress ProgressBar app MainLoop for i in xrange len to
  • Android:设置自定义字体时出现异常

    自一小时以来 我一直在绞尽脑汁地从代码中设置自定义字体到文本 我已经在之前的项目中做到了这一点 而且它有效 但我不知道出于什么原因 它给了我例外 无法制作原生字体 在这里 我已经解决了许多与此相关的问题 并尝试了建议的解决方案并适用于这些情
  • 是否可以从我自己的 AoG 应用程序的实现中触发另一个 Actions on Google 应用程序? [复制]

    这个问题在这里已经有答案了 此问题专门与 Google Apps 上的操作有关 涉及触发事件 操作以使助手为最终用户选择另一个 AoG 应用程序的能力 专门用于触发其他人的 AoG 应用程序 而不是您编写的应用程序 Idea 我想创建一个自
  • 轴位于中心的 R 图

    默认情况下 R 中的笛卡尔轴位于图的底部和左侧 如何使轴居中 如下图所示 Example using data generated by bgoldst estimate curve x lt seq 1 1 5 0 1 y lt c 1
  • 使用 Hibernate 映射双向列表

    我不明白映射双向列表时 Hibernate 的行为 Hibernate 生成的 SQL 语句对我来说似乎不是最佳的 有人可以启发我吗 场景如下 我有一对多的父子关系 我用双向列表来映射这种关系 根据Hibernate 注解参考指南 http
  • AngularJS:如何在模板内设置变量?

    我怎样才能避免 f 第三行语句打印出内容forecast day iso 我想避免使用forecast day iso temperature每次迭代依此类推 div index day iso day name f forecast da
  • IE9 文本渲染问题 - 字母尾部被切断

    我遇到了一个问题 在 IE9 标准模式下 IE9 以降序字母的尾部 q p y 等 消失的方式呈现文本 已尝试使用填充和其他常见的 CSS 设置来帮助解决此问题 但到目前为止我还没有运气 谁知道这可能是什么 EDIT 我在博客上找到了这个
  • Glassfish 3.1.1:在 RESTful Web 服务中检索 HTTP 身份验证

    我正在使用基于我的客户表的 HTTP 身份验证 用户通过身份验证后 将调用静态 Web 服务 但是我如何在 Web 服务中访问 HTTP 身份验证 HttpRequest 的标头数据 我的代码如下所示 GET Path id Produce
  • 战舰人工智能在一定规则下沉没部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在寻找在某些规则下是否可以为战舰沉
  • 使用 msbuild 扩展包验证文件夹是否存在?

    如何使用 msbuild 扩展包任务可靠地验证文件夹是否存在 我怎样才能做到这一点而不引发错误并停止构建 您可以在目标上使用 Exists 条件吗 仅当与 msbuild 文件位于同一目录中存在名为 Testing 的目录或文件时 才会执行
  • 如何循环访问类的属性?

    C 有没有办法循环遍历类的属性 基本上我有一个包含大量属性的类 它基本上保存大型数据库查询的结果 我需要将这些结果输出为 CSV 文件 因此需要将每个值附加到一个字符串中 最明显的方法是将每个值手动附加到字符串中 但是有没有一种方法可以有效
  • 如何对一组和进行求和? SQL Server 2008

    我有一个查询sum像这样 SELECT Table1 ID SUM Table2 Number1 Table2 Number2 AS SumColumn FROM Table1 INNER JOIN Table3 ON Table1 ID