【问题标题】:How to Sum a Single Table from a join statment如何从连接语句中对单个表求和
【发布时间】:2014-10-21 17:29:46
【问题描述】:

我正在尝试执行查询,但我的 sum 部分遇到了问题。我有表 A 和表 B。我想对表 A 中的一列求和,其中表 A 和 B 中的 2 列是相同的,并且属于相同的日期和班次。但是,总和不知何故也包括表 B。我不知道为什么会这样。我如何使它仅对表 A 求和,但仍包括表 B 的条件。非常感谢任何帮助。谢谢。

SELECT Sum (a.TotalLbs)
FROM   TableA a
       INNER JOIN TableB b
               ON a.Wic = b.Wic
WHERE  a.DateTime = b.DateTime
       AND a.Shift = b.Shift 

【问题讨论】:

  • 包括一些测试数据和预期结果

标签: sql sql-server sql-server-2008 sqlite


【解决方案1】:

当有多个 B 行匹配一个 A 行时,连接会生成多个输出行。

您实际上对任何 B 值都不感兴趣,您只想知道是否有任何匹配的行:

SELECT Sum(TotalLbs)
FROM TableA a
WHERE EXISTS (SELECT 1
              FROM TableB b
              WHERE a.Wic      = b.Wic
                AND a.DateTime = b.DateTime
                AND a.Shift    = b.Shift)

【讨论】:

  • 我想你错过了 Wic 专栏
  • 这正是我所需要的。谢谢。
猜你喜欢
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
  • 2022-11-12
  • 1970-01-01
相关资源
最近更新 更多