首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-10-20 
求两个表数据相加的代码,在线等,急有一个 A 表,两个字段 name,money,name是唯一的另外一个 B 表,也有两个

求两个表数据相加的代码,在线等,急
有一个 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 行受影响)  */ 

热点排行
Bad Request.