设置一游标,将所需记录数据全部读入,
然后开始一循环,如:name(n) 数组,rowcount = 记录总数for i=1 to i= rowcount
    ......  if name(i+1)=name(i) then
    .......
  end if
   ......next i
 
 

解决方案 »

  1.   

    strname=上一条记录的NAME
    rs.movenext
    if strname=rs.fields("下一条记录的NAME") then
        ........
    end if这样行不?
      

  2.   

    我的数据库非常大,而且它是每天更新的,如果按第一种方法我想可能会比较麻烦,用第二种方法则因为NAME这个字段包括了很多不同内容的姓名,我不知道上下记录上确切的姓名,所以我想也不太可能实现
    请大家再作指点,谢谢
      

  3.   

    假若你要的姓名字段在第0列,则伪代码:
    rs.open();
    while(!rs.eof())
    {
    name1=rs.GetFieldValue(0);
    rs.movenext();
    name2=rs.GetFieldValue(0);
    if(name1=name2) then
       ....
    }行不?
      

  4.   

    呵呵,天,我怎么觉得你在写脚本语言,我用的是VPF,不过没关系,你这样写应该没错,怎么用VPF写呢:)
      

  5.   

    我想了一下,其实可能不用那么麻烦。我现在要做的工作是,排名
    这里有一个组,它有很多成员,组里面又分了很多队,每个队有一个组长
    我要按业绩进行两次排名,一次是对整个组进行排名,一次是对每个队进行排名,这样我可以得到一个表,其中一条记录对应两个排名
    我的想法是,全组的排名比较好办
    用replace rank with recn()就可以做到
    但是对每个队内部的排名怎么做呢,先Order by 队长NAME,然后在每条记录的往下找,如果队长NAME 不同了,则表示是另一个队的成员了,再用循环进行排名,但是上下记录的NAME等不等同,我不知道怎么写这个语句,我用的是VFP,谢谢大家指点,比较紧急。
      

  6.   

    如果用前端程序解决的话,应该不是很复杂。如果想在数据库后台用sql解决,我想可能要借助多个 View.前端解决可否这样: 设一变量, string   dname   初始化 dname = 第一条记录的队长名
      
     然后逐条对比。 如果不等,dname = 当前记录的队长名
      

  7.   

    不要你事先确定某一个名啊。
    你不是用order by 吗,总会有第一条记录吧,取出来赋值给变量不就行了吗?
    我的意思是 你想要前端编程实现你的目的 还是 后台数据库自动完成目的。做法不同的。我觉得你是想在前端通过程序得到你的结果,对不对?
      

  8.   

    strname=rs.fields("NAME")
    rs.movenext
    while rs.eof=false
        if strname=rs.fields("NAME") then
           ........
        end if
        strname=rs.fields("NAME")
        rs.movenext
    wend
      

  9.   

    sele * from allfam order by ytdfyp desc into dbf allfam2
    replace all rank with recn()
    go top 
    public name,rank
    name=fname
    rank=1
    replace frank with rank
    skip 
    do while  fname=name
    if !eof()
    replace frank with rank+1
    else
    replace frank with 1
    name=fname
    skip
    endif
    enddo
    这样写错在哪里?表也打不开,为什么
      

  10.   

    全组每个人的排名表
    select 10000-10000 as mc,name,……from tablename order by yj desc into table newtable
    sele newtable
    repl all mc with recno()
    go top
    brow
      

  11.   

    每个队的排名。
    select 10000-10000 as mc,队号,sum(yj) as yj from tablename order by yj desc into able newtablesele newtable
    repl all mc with recno()
      

  12.   

    全组每个队内部排名。
    select 1000-1000 as mc,队号,name,yj…… from tablename order by 队号,yj desc into table newtable
     
    sele newtable
    go top
    aa=0
    c队号=队号
    do while not eof()
        if 队号=c队号
             aa=aa+1
      else
         aa=1
         c队号=队号
      endif
      repl mc with aa
      skip
    enddo