回复 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最后的阵地