日期:2014-05-17  浏览次数:20661 次

如何写根据明细表补充主账户信息

明细表数据如下:

账户  姓名   积分    时间
1101  张三   100   2014-01-01
1101  张三   100   2014-01-02
1101  张三   100   2014-01-03
1101  张三   100   2014-01-05
1101  张三   100   2014-01-06

主账户表数据如下:
账户  姓名   积分    
1101        100   
1102        100   
1103        100   


现在想把主账户表的姓名补全。

有什么快的办法?



------解决方案--------------------
UPDATE a
SET a.[姓名]=b.[姓名]
FROM  (SELECT DISTINCT[账户] ,[姓名] FROM b )b
WHERE a.[账户] =b.[账户] 

a表为主帐,B表为明细
------解决方案--------------------
试试这个:
UPDATE 主账户表
SET 姓名=b.姓名
FROM  
(
SELECT 账户 ,max(姓名) as 姓名
FROM 明细表 
group by 账户
)b
WHERE 主账户表.账户 =b.账户 

------解决方案--------------------
a为主账户表,b为明细表,我已经用实例测试过了,可以满足你的要求

UPDATE [master].[dbo].[a]
   SET a.[姓名] = c.[姓名]
from (select distinct * from b) c
where a.[账户]=c.[账户]