处理身份证相同的情况 2

来源:互联网 发布:大数据课程 编辑:程序博客网 时间:2024/06/07 01:39

进行二次选择:

1、删除掉表里的数据:

Delete    [PisCh].[dbo].[SfzCaculate2]

2、将目标表中不同名,但同身份证号的数据

Insert 到[PisCh].[dbo].[SfzCaculate2]表中。

insert into [PisCh].[dbo].[SfzCaculate2](
[xzCode]
      ,[cunCode]
      ,[zuCode]
      ,[hucode]
      ,[RenName]
      ,[renxbcode]
      ,[renHkszdCode]
      ,[RenSfzhm1]
      ,[S1]
      ,[S2]
)

SELECT max(xzcode),max(cuncode),max(zucode),max(hucode),renname,max(RenXbCode),max(renHkszdCode),rensfzhm1,COUNT(*),MAX(s2)
  FROM [PisCh].[dbo].[SfzCaculate1]
  group by RenName,RenSfzhm1 having COUNT(*)=1
  order by RenSfzhm1

3、再将组别较大的加入到表3中

insert into [PisCh].[dbo].[SfzCaculate3]
([xzCode]
      ,[cunCode]
      ,[zuCode]
      ,[huCode]
      ,[RenCode]
      ,[RenName]
      ,[RenXbCode]
      ,[renCsdate]
      ,[renHkszdCode]
      ,[RenSfzhm1]
      ,[S1]
      ,[S2]
      ,[S3]
      ,[RenSfzhm2]
      ,[S4]
      ,[S5]
      ,[S6]
      ,[S7]
      ,[S8]
      ,[S9])

SELECT  [xzCode]
      ,[cunCode]
      ,[zuCode]
      ,a.huCode
      ,[RenCode]
      ,[RenName]
      ,[RenXbCode]
      ,[renCsdate]
      ,[renHkszdCode]
      ,a.RenSfzhm1
      ,[S1]
      ,[S2]
      ,[S3]
      ,[RenSfzhm2]
      ,[S4]
      ,[S5]
      ,[S6]
      ,[S7]
      ,[S8]
      ,[S9]
         FROM [PisCh].[dbo].[SfzCaculate2] a INNER JOIN
                  (SELECT DISTINCT rensfzhm1, hucode = MAX(hucode)
                  FROM [PisCh].[dbo].[SfzCaculate2]
                  GROUP BY RenSfzhm1) b ON
                  a.RenSfzhm1=b.RenSfzhm1 AND a.huCode=  b.hucode

最后对此部分人做修改。



原创粉丝点击