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

表复制数据的sql语句问题,求高手!!!!
一个表 里面有
UsrID UsrNBR  CustomerID AcctID EIGNO 等字段
主键是联合主键 UsrID ,UsrNBR  ,EIGNO  3个字段构成的联合主键


现在表里面有一些数据,需求是:
在本表里面新增一些数据,根据CustomerID 字段来新增

具体是:要查询出所有CustomerID 不重复的记录(原数据CustomerID很多相同的)
把这些记录的UsrID字段的值变成该记录的CustomerID的值,然后插入到本表里面!

求高手解答!!!
sql

------解决方案--------------------
发下 表结构 一些测试数据 要的结果·
------解决方案--------------------
insert into 表
select CustomerID,UsrNBR ,CustomerID,AcctID,EIGNO  from 表 a
 where not exists(select * from 表 where UsrID=a.UsrID and UsrNBR=a.UsrNBR and EIGNO=a.EIGNO)

------解决方案--------------------
--楼主没给数据,仅供参考吧:
INSERT  INTO tablename

UsrID,
    UsrNBR,
    CustomerID,
    AcctID,
    EIGNO
)
SELECT
    B.UsrID,
    B.UsrNBR,
    B.CustomerID,
    B.AcctID,
    B.EIGNO
FROM (SELECT DISTINCT CustomerID FROM tablename) a
CROSS APPLY
(
SELECT TOP(1) UsrID=CustomerID,UsrNBR,CustomerID,AcctID,EIGNO 
FROM tablename m 
WHERE m.CustomerID = a.CustomerID
AND NOT EXISTS
(
SELECT 1
FROM tablename n
WHERE n.UsrID = m.CustomerID
AND n.UsrNBR = m.UsrNBR
AND n.EIGNO = m.EIGNO
)  
) b

------解决方案--------------------