表A  myid prid
  a0001 1245
  a0001 2546
  a0002 5869
  a0002 5896
  a0003 5894
  a0003 5896
  ***** ****表B
  myid prid
  a001
  a002
  a003  
表A與表b通過MYID關聯,將表A的prid中的任意一條更新到表B的PRID
重點:如果PRID己經更新過的號碼就不能再取同一個號碼,也就是表B
的PRID不能重復

解决方案 »

  1.   

    也就是根据表A myid 分组,prid任意取一条?
      

  2.   


    update b
    set prid = max(a.prid)
    from a
    where a.myid = b.myid and a,prid <> b.prid
      

  3.   


    update b
    set prid = max(a.prid)
    from a
    where a.myid = b.myid and a,prid <> isnull(b.prid,0)
      

  4.   


    update b
    set prid = (select top 1 prid from a where a.myid = b.myid and a.prid <> isnull(b.prid,0))
      

  5.   

    按照楼主的意思的话,”表A與表b通過MYID關聯,將表A的prid中的任意一條更新到表B的PRID“
    这句话是不对的,不是任意一条。因为如果a0001  有2个 prid 分别是 1 , 2       a0002  有1个 prid  是1; 那么你a0001 只能取2,而不能取1.
    所以这个问题是个算法问题了