来自单独表格的字段总和

时间:2015-02-04 20:03:23

标签: sql join sum

我有两张桌子。表A有5条记录,表B有4条记录。我的SQL看起来像这样:

SELECT 
    sum(labor), sum(setup), sum(actual)
FROM 
    TABLE A 
LEFT JOIN 
   TABLE B ON [TABLE A].OP = [TABLE B].OP

表A

op | labor | setup
---+--   --+---
10 |  0.05 |  0
20 |  0.3  |  0.2
30 |  0.05 |  0
40 |  0.0  |  0
50 |  0.0  |  0

表B

op | actual
---+----
10 |  0.05 
20 |  3.083
20 |  0.283
20 |  0.3

我需要在一行中完成人工,设置和实际的总和。劳动力= 0.4,设定值= 0.2,实际值= 3.716。我遇到的问题是我得到劳动= 1,设置= 0.6,实际是3.716因为表B有3条记录与操作20。

我也尝试过使用(op分区),但我得到了相同的结果。有人可以请求帮助,我已经盯着查询几个小时并开始失去理智。

感谢

1 个答案:

答案 0 :(得分:0)

您需要在join之前的第二个表格上进行聚合:

SELECT sum(labor), sum(setup), sum(actual)
FROM TABLE A LEFT JOIN
     (SELECT OP, SUM(actual) as actual
      FROM TABLE B
      GROUP BY OP
     ) b
     ON [TABLE A].OP = b.OP;

否则,您的行会在join之后相乘,并且第一个表上的聚合不起作用。