以下是我的数据。
mysql> SELECT * FROM base
-> ;
+----------+-----------+-------+------+
| ORD_DATE | PROD_CODE | WIDTH | QTY |
+----------+-----------+-------+------+
| 20101001 | 0001 | 90 | 3 |
| 20101001 | 0001 | 90 | 3 |
| 20101001 | 0001 | 100 | 3 |
| 20101001 | 0001 | 100 | 3 |
| 20101001 | 0001 | 110 | 12 |
| 20101001 | 0001 | 120 | 3 |
| 20101001 | 0001 | 120 | 3 |
...
| 20101001 | 0002 | 955 | 5 |
| 20101001 | 0002 | 995 | 7 |
| 20101006 | 0001 | 385 | 6 |
| 20101006 | 0001 | 410 | 6 |
+----------+-----------+-------+------+
我想通过添加具有相同(ORD_DATE,PROD_CODE,WIDTH)的重复行(QTY)来更新上表。
我想获得如下表数据。
+----------+-----------+-------+------+
| ORD_DATE | PROD_CODE | WIDTH | QTY |
+----------+-----------+-------+------+
| 20101001 | 0001 | 90 | 6 |
| 20101001 | 0001 | 100 | 6 |
| 20101001 | 0001 | 110 | 12 |
| 20101001 | 0001 | 120 | 6 |
...
| 20101001 | 0002 | 955 | 5 |
| 20101001 | 0002 | 995 | 7 |
| 20101006 | 0001 | 385 | 6 |
| 20101006 | 0001 | 410 | 6 |
+----------+-----------+-------+------+
请你帮忙。谢谢。
如果要保持表原样,并且只选择值作为第二个表,则可以使用函数SUM和子句group by。
例如
SELECT ORD_DATE, PROD_CODE, WIDTH, SUM(QTY) FROM base
GROUP BY ORD_DATE, PROD_CODE, WIDTH;
但是,如果要更新原始表,则可以使用上面的选择,删除表的所有行,然后使用从选择中获取的信息重新插入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句