回复 28楼 sylknb
按照你的实际情况,代码如下
程序代码:CREATE CURSOR BZ (下限 N(3),上限 N(3))
NUM=10 && 10分一个分数段,或者手工建一个自由表,前提是分数必须为整数
FSD=80 && 按照总成绩的满分设置分数段,共设置FSD个分数段
FOR I=1 TO FSD
IF I=1
INSERT INTO BZ VALUES (0,NUM-I)
ELSE
INSERT INTO BZ VALUES (NUM1+1,NUM1+NUM)
ENDIF
NUM1=上限
ENDFOR
SELECT XH,TOT1,SPACE(7) 分数段 FROM BK INTO CURSOR T1 READWRITE
UPDATE T1 SET 分数段=PADL(BZ.下限,3,[0])+[-]+PADL(BZ.上限,3,[0]) FROM BZ WHERE BETWEEN(T1.TOT1,BZ.下限,BZ.上限)
SELECT 分数段,COUNT(*) 人数 FROM T1 GROUP BY 分数段 INTO CURSOR T2
SELECT PADL(BZ.下限,3,[0])+[-]+PADL(BZ.上限,3,[0]) 分数段,NVL(人数,0) 人数 FROM BZ LEFT JOIN T2 ON PADL(BZ.下限,3,[0])+[-]+PADL(BZ.上限,3,[0])=T2.分数段 INTO CURSOR T3 READWRITE
INSERT INTO T3 SELECT [合计],SUM(人数) FROM T3
BROWSE

坚守VFP最后的阵地






