当前位置: 代码迷 >> Sql Server >> 求两个表数据相加的代码,
  详细解决方案

求两个表数据相加的代码,

热度:2   发布时间:2016-04-27 10:52:45.0
求两个表数据相加的代码,在线等,急
有一个 A 表,两个字段 name,money,name是唯一的
另外一个 B 表,也有两个字段 name,money,但 name 并不是唯一的

需要将 B 表相同 name 的 money 全部相加后,再加到 A 表对应的 name 的 money 中
--------------------------
A
name, money
b001, 0
b002, 0
b003, 0
b004, 0
-----------
B
name, money
b001, 10
b001, 20
b001, 10
b002, 100
b003, 100
执行后,得到
---------------
A
name, money
b001, 40
b002, 100
b003, 100
b004, 0

------解决方案--------------------
SQL code
CREATE TABLE testA (NAME VARCHAR(10), [money]int ) INSERT INTO testA  SELECT 'b001', 0 UNION ALL  SELECT 'b002', 0 UNION ALL  SELECT 'b003', 0 UNION ALL  SELECT 'b004', 0  CREATE TABLE testB (NAME VARCHAR(10), [money]int) INSERT INTO testB SELECT 'b001', 10 UNION ALL  SELECT 'b001', 20 UNION ALL  SELECT 'b001', 10 UNION ALL  SELECT 'b002', 100 UNION ALL  SELECT 'b003', 100  WITH cte AS ( SELECT NAME,SUM(money) [money] FROM testB GROUP BY NAME)  UPDATE a SET a.[money]=b.[money]  FROM testA a INNER JOIN cte B ON a.NAME=b.NAME SELECT * FROM testA /*  (3 行受影响) NAME       money ---------- ----------- b001       40 b002       100 b003       100 b004       0  (4 行受影响)  */
  相关解决方案