表名:A字段(字段名/类型/长度):
    HBL        varchar   8;//HBL单号
    Edate      bigint     8;//日期
    state          varchar     2;//状态表名:B字段(字段名/类型/长度):
    HBL                varchar     8;//HBL单号
    name           varchar     30;//姓名
    idcard         varchar     18;//身份证号
    state          varchar     2;//状态
其中,两个表的关联字段为HBL单号。1.查询同一个身份证号码有两条以上记录的身份证号码及记录个数2.将身份证号码为123456789123456789的记录在两个表中的状态均改为’AA’请高手提供这两条语句!

解决方案 »

  1.   

    select idcard ,count(idcard) from A
    left join B on a.HBL= b.HBL
    group by idcard having count(idcard)>1
      

  2.   

    update a set state ='AA' where HBL  in(select HBL  from b where idcard  in (select idcard from A left join B on a.HBL= b.HBL group by idcard having count(idcard)>1)
    ;update b set state ='AA' where HBL  in(select HBL  from b where idcard  in (select idcard from A left join B on a.HBL= b.HBL group by idcard having count(idcard)>1)
    ;
      

  3.   

    1.查询同一个身份证号码有两条以上记录的身份证号码及记录个数
    select idcard ,COUNT(idcard)
    from B
    group by idcard
    having COUNT(idcard)>=22.将身份证号码为123456789123456789的记录在两个表中的状态均改为’AA’
    update B set state='AA' where idcard='123456789123456789'
    update A set state='AA' from B where a.HBL=B.HBL and B.idcard='123456789123456789'
      

  4.   


    1.查询同一个身份证号码有两条以上记录的身份证号码及记录个数select distinct idcard , count( distinct idcard ) from B group by idcard having count(1)>12.将身份证号码为123456789123456789的记录在两个表中的状态均改为’AA’update B set state='AA'  where idcard='123456789123456789'
    update A set  state='AA' from B where B.idcard='123456789123456789' and  A.HBL = B.HBL