请问
  我想得到 一个表里 多行数据 的一个字段的最大那条数据,
目前只知道 GH=A 其他的都不知道  怎么用游标才取得最大的那个?
  如:
      XM      BH     GH
      李三     1      A  
      李三     2      A 
      李三     3      A
怎么得到 BH 最大的那条数据呢?
  

解决方案 »

  1.   

    为什么要用游标啊
    create table #ttt(XM nvarchar(50), BH int , GH varchar(50))
    insert into #ttt values(N'李三',1,'A')
    insert into #ttt values(N'李三',2,'A')
    insert into #ttt values(N'李三',3,'A')
    insert into #ttt values(N'张四',1,'A')
    insert into #ttt values(N'张四',2,'A')
    insert into #ttt values(N'王五',1,'B')select * from(
    select *, ROW_NUMBER() over(partition by XM order by GH desc ) rw  from #ttt
    where GH='A')t
    where t.rw=1 
      

  2.   

    写错了
    create table #ttt(XM nvarchar(50), BH int , GH varchar(50))
    insert into #ttt values(N'李三',1,'A')
    insert into #ttt values(N'李三',2,'A')
    insert into #ttt values(N'李三',3,'A')
    insert into #ttt values(N'张四',1,'A')
    insert into #ttt values(N'张四',2,'A')
    insert into #ttt values(N'王五',1,'B')select * from(
    select *, ROW_NUMBER() over(partition by XM order by BH desc ) rw  from #ttt
    where GH='A')t
    where t.rw=1 结果
    张四 2 A 1
    李三 3 A 1
      

  3.   

    不行啊·我用的是SQL2000的查询分析器·· ROW_NUMBER() 没有这个函数啊··
      

  4.   

    create table #ttt(XM nvarchar(50), BH int , GH varchar(50))
    insert into #ttt values(N'李三',1,'A')
    insert into #ttt values(N'李三',2,'A')
    insert into #ttt values(N'李三',3,'A')
    insert into #ttt values(N'张四',1,'A')
    insert into #ttt values(N'张四',2,'A')
    insert into #ttt values(N'王五',1,'B')
    select xm,(select count(*)+1 from #ttt where bh>a.bh) as bhpm,bh from #ttt a order by bh desc
    结果:
    xm     bh排名  bh
    李三 1 3
    李三 2 2
    张四 2 2
    王五 4 1
    李三 4 1
    张四 4 1