如何从连接语句中对单个表进行求和

时间:2014-10-21 17:29:46

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

我正在尝试执行一个查询,但我的总和部分遇到了麻烦。我有表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 

1 个答案:

答案 0 :(得分:5)

当有多个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)