回 帖 发 新 帖 刷新版面

主题:关于填数的问题

这是我的问题:
   b j      x h
  三班       1
  三班       1
  三班       1
  五班       1
  五班       1
  五班       1
  五班       1
  五班       1
  七班       1
  七班       1
  七班       1
  七班       1
我要做成下面的表:
  b j       x h
  三班       1
  三班       2
  三班       3
  五班       1
  五班       2
  五班       3
  五班       4
  五班       5
  七班       1
  七班       2
  七班       3
  七班       4
谢谢!!

回复列表 (共12个回复)

11 楼

[quote]USE XXXX
SORT TO temp ON bj
USE temp 
cBj=''
nXh=1
SCAN 
IF ALLTRIM(bj)==ALLTRIM(cBj)
nXh=nXh+1
ELSE 
nXh=1
ENDIF 
REPLACE xh WITH nXh
cBj=bj
ENDSCAN[/quote]

在上面几种方法中,我都运行了,其中user886633这个程序最好。

12 楼

[quote][quote]我的跟4楼的差不多,如下
&& 设表名为myclass,字段xh为数值型或整型
use myclass
scan
    if recn()#1 and bj=bj001
        xh001=xh001+1
    else
        xh001=1
        bj001=bj
    endif
    repl xh with xh001
endscan[/quote]

变量bj001和xh001没有初值
[/quote]

模拟一下程序运行就清楚了,如下:(给执行顺序打个号)
1 use myclass
2 scan
3    if recn()#1 and bj=bj001   &&  开始时,recn()值为1,所以会跳到else后语句
        xh001=xh001+1
    else
4        xh001=1
5        bj001=bj
    endif
......
......


另外,如  if recn()#1 and bj=bj001, 当 “and”之前的“recn()#1”为否时,系统不运算“and”之后的“bj=bj001”,这时,表达式“bj=bj001”是否能运算也没有一点关系了,所以逻辑运算式中的各要素的先后位置有一定的考究,处理得当会相对提高程序运行的速度。
(以上为个人的一点看法,欢迎交流!)

我来回复

您尚未登录,请登录后再回复。点此登录或注册