2张表,一张是人员表,但是会有版本的概念(versionnum),我只想要最大的那笔,请问如何写,谢谢[REFNumber_AdminUser]         UserPrid Process
1 Oliver xx NULL
2 Harry xx NULL
3 Zero xx NULL[MDM_UserProfile]UserPRID VersionNum  
Oliver 1
Joan 1
Harry 2我用的语句select    UserPRID,VersionNum  from dbo.MDM_UserProfile where userPrid 
COLLATE Chinese_PRC_CI_AS in 
(select [UserPRID] from [REFNumber_AdminUser] where [Process]='xx' )  
ORDER BY VersionNum DESC得到结果
Harry 2
Oliver   1
Harry 1我只希望获得 VersionNum最大的那笔数据,请问该如何写

解决方案 »

  1.   

    select
      b.*
    from
      [REFNumber_AdminUser] a,[MDM_UserProfile] b
    where
      a.UserPrid=b.UserPrid
    and
      UserPrid=(select max(UserPrid) from [REFNumber_AdminUser] where UserPrid=a.UserPrid)
      

  2.   

    不对的哦。UserPrid是账号,会重复的。UserPrid即上面的Harry Oliver等,1、2、3是VersionNum
      

  3.   

    select    UserPRID,max(VersionNum)  from dbo.MDM_UserProfile where userPrid 
    COLLATE Chinese_PRC_CI_AS in 
    (select [UserPRID] from [REFNumber_AdminUser] where [Process]='API' ) 
    group by UserPRID知道了,感谢
      

  4.   

    select
      b.*
    from
      [REFNumber_AdminUser] a,[MDM_UserProfile] b
    where
      a.UserPrid=b.UserPrid
    and
      VersionNum=(select max(VersionNum) from [REFNumber_AdminUser] where UserPrid=a.UserPrid)
      

  5.   


    select UserPRID,max(VersionNum)
    from MDM_UserProfile
    group by UserPRID
      

  6.   

    select U.UserPrid,M.VersionNum from REFNumber_AdminUser U
    join
    (
    select UserPRID,VersionNum from [MDM_UserProfile] where 
    VersionNum in(select max(VersionNum) from [MDM_UserProfile])
    ) M
    on U.UserPrid=M.UserPRID