如何统计A、B、C、D的个数,并计算总分
现有表文件cpb.dbf,如何统计A、B、C、D的个数,并计算总分,生成Tjb.dbf。[赋分规则 A:20 B:18 C:12 D:8],盼高手赐教,万分感谢!!!


[此贴子已经被作者于2023-4-17 10:44编辑过]
CLOSE DATABASES CREATE CURSOR tjb (班级 C(4),A1 N(4), B1 N(4), C1 N(4), D1 N(4), 总分 N(4)) INSERT INTO tjb (班级) SELECT DISTINCT 班级 FROM cpb INDEX ON 班级 TAG bj SELECT cpb SET RELATION TO 班级 INTO tjb ALINES(la1, "A,B,C,D", ",") ALINES(la2, "20,18,12,8", ",") SCAN FOR ln1 = 2 TO FCOUNT() lc1 = ALLTRIM(EVALUATE(FIELD(ln1))) FOR ln2 = 1 TO LEN(lc1) lc2 = SUBSTR(lc1, ln2, 1) IF FOUND("tjb") REPLACE (lc2 + "1") WITH EVALUATE(lc2 + "1") + 1, 总分 WITH 总分 + VAL(la2[ASCAN(la1, lc2)]) IN tjb ENDIF ENDFOR ENDFOR ENDSCAN SET RELATION TO SELECT tjb BROWSE
SET COMPATIBLE OFF CREATE CURSOR tt (a I,b I,c I,d I) INSERT INTO tt VALUES (20,18,12,8) SELECT * FROM tt INTO ARRAY ci DIMENSION cj[4] SELECT *, cj[1] A, cj[2] B, cj[3] C, cj[4] D,; cj[1]*ci[1]+cj[2]*ci[2]+cj[3]*ci[3]+cj[4]*ci[4] 总分 FROM cpb WHERE fun() FUNCTION fun() STORE 0 TO cj cs = ALLTRIM(s1-s2-s3-s4-s5-s6-s7-s8) FOR i=1 TO LEN(cs) k = ASC(SUBSTR(cs,i,1)) - ASC("A") + 1 IF BETWEEN(k,1,4) cj[k] = cj[k] + 1 ENDIF ENDFOR RETURN .t. ENDFUNC
[此贴子已经被作者于2023-4-17 15:03编辑过]