SQL如何将查出来的列放到另一个表中
对一表进行SUM()或者AVG()等操作,会查出来一个列表,如何将这组数据放到数据库中已存在的另一个表中,这里提供解决方案。
插入操作
SELECT SUM(货物数量) 业绩 FROM 发货 GROUP BY 快递员编号 ![查询到的列表](https://img-blog.csdnimg.cn/20201230110239846.png)
INSERT INTO
快递员(业绩)
SELECT SUM(货物数量) 业绩
FROM 发货
GROUP BY 快递员编号
更新操作
UPDATE 快递员
SET 业绩 =(
SELECT SUM(货物数量) 业绩
FROM 发货
GROUP BY 快递员编号);
改为:
UPDATE 快递员
SET 业绩 =ANY(
SELECT SUM(货物数量) 业绩
FROM 发货
GROUP BY 快递员编号);
**## 最终解决方案
UPDATE 目标表格
SET 目标列 =B.查询列
FROM (查询语句) AS B
WHERE (连接把目标表和B表);
例如:
UPDATE 快递员
SET 业绩 =B.业绩
FROM (SELECT 快递员编号,SUM(货物数量) 业绩
FROM 发货
GROUP BY 快递员编号) AS B
WHERE 快递员.快递员编号=B.快递员编号;
结果
对于将结果输入目标表的实现,对于已存在的表和表列,需要用到的操作为查询操作,而不是插入,当子查询中的值不为一时,要用到=,>,<,<>,>=,<=,等操作,并与ANY,ALL连用。