【发布时间】:2019-03-11 17:01:47
【问题描述】:
我有这样的table1:
+-----+-----+------+
| cat | val | type |
+-----+-----+------+
| A | 100 | c1 |
| H | 25 | c2 |
| H | 50 | c3 |
| H | 30 | c2 |
| A | 15 | c3 |
| H | 10 | c1 |
| H | 15 | c1 |
| B | 10 | c4 |
| H | 20 | c4 |
| H | 15 | c3 |
+-----+-----+------+
我需要按类型将 sum(val) 组添加到仅属于每种类型的一个 H
所以我在按类型分组后说 table2 :
+-----+-----+
| cat | val |
+-----+-----+
| c1 | 125 |
| c2 | 55 |
| c3 | 80 |
| c4 | 30 |
+-----+-----+
我需要将 125 添加到 c1 类型的任何一个 H 值,将 55 添加到 c2 的任何一个 H 值,等等。如果 c1 没有 H,那么它应该创建该记录。
所以最后我们得到:
+-----+-----+------+
| cat | val | type |
+-----+-----+------+
| A | 100 | c1 |
| H | 25 | c2 |
| H | 130 | c3 |
| H | 85 | c2 |
| A | 15 | c3 |
| H | 135 | c1 |
| H | 15 | c1 |
| B | 10 | c4 |
| H | 50 | c4 |
| H | 15 | c3 |
+-----+-----+------+
如果不按类型分组,我该怎么做?另外我没有更新权限,不能使用存储过程。我还必须记住,table1 是涉及多个内部连接的查询的结果,我不想一遍又一遍地用于选择语句。
【问题讨论】:
-
为什么
| H | 25 | c2 |行完全没有变化?| H | 15 | c1 |和| H | 15 | c3 |也一样? -
@MatBailie,因为需要更新任何一个(H,Cs)组合,而不是更多