【发布时间】:2015-02-04 20:03:23
【问题描述】:
我有两张桌子。表 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。
我也尝试过使用 over(partition by op),但我得到了相同的结果。有人可以帮忙吗,我一直盯着查询几个小时,开始失去理智。
谢谢
【问题讨论】: