如下:
要求:
1.查出用户信息表(t_users)中的所有重复记录(姓名、身份证号、手机号、座机号任一项重复都视为重复)。
2.结合用户信息表(t_users)和用户状态表(t_state),把重复记录在t_state表中对应的信息整合到每组重复记录中uid最小的账号下,并把此最小账号对应用户状态(state)改为T,每组重复中其它账号对应的用户状态(state)改为F(即:把t_state表中每组重复记录的uid都改为最小的uid,而对应的状态前者为T,后者为F)。
注意:用T-SQL存储过程来完成。 

解决方案 »

  1.   

    1.
    select ta.* from 
    t_users ta,
    (select 姓名,身份证号,手机号,座机号 
    from t_users 
    group by 姓名,身份证号,手机号,座机号
    having count(*)>1) tb
    where ta.姓名=tb.姓名 and ta.身份证号=tb.身份证号 
      and ta.手机号=tb.手机号 and ta.座机号=tb.座机号
      

  2.   

    --替换为T
    update t_state
    set state=T
    where uid in 
    (select min(uid) from  t_users 
    group by 姓名,身份证号,手机号,座机号
    having count(*)>1)--替换为F
    update t_state
    set state=F
    where uid not in 
    (select min(uid) from  t_users 
    group by 姓名,身份证号,手机号,座机号
    having count(*)>1)
    and in 
    (
    select uid from 
    t_users ta,
    (select 姓名,身份证号,手机号,座机号 
    from t_users 
    group by 姓名,身份证号,手机号,座机号
    having count(*)>1) tb
    where ta.姓名=tb.姓名 and ta.身份证号=tb.身份证号 
      and ta.手机号=tb.手机号 and ta.座机号=tb.座机号
    )
      

  3.   

    图确实看不见,楼主上传到csdn的像册中来
      

  4.   

    我真的很无语啦,图片在我的相册《提问中的图片》
    t_users表:http://hi.csdn.net/space-8592206-do-album-picid-863334-goto-down.html
    t_state表:http://hi.csdn.net/space-8592206-do-album-picid-863333-goto-down.html