表复制数据的sql语句问题,求高手!!!!
一个表 里面有
UsrID UsrNBR CustomerID AcctID EIGNO 等字段
主键是联合主键 UsrID ,UsrNBR ,EIGNO 3个字段构成的联合主键
现在表里面有一些数据,需求是:
在本表里面新增一些数据,根据CustomerID 字段来新增
具体是:要查询出所有CustomerID 不重复的记录(原数据CustomerID很多相同的)
把这些记录的UsrID字段的值变成该记录的CustomerID的值,然后插入到本表里面!
求高手解答!!!
------解决方案--------------------发下 表结构 一些测试数据 要的结果·
------解决方案--------------------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
------解决方案--------------------