以下是引用吹水佬在2023-6-14 09:57:27的发言:
CREATE CURSOR 测试表 (姓名 C(8),得分 I,项目1 I,项目2 I,项目3 I)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)
UPDATE 测试表 SET 得分=fun(1)+fun(2)+fun(3)
SELECT * FROM 测试表
FUNCTION fun(num)
vxm = EVALUATE("测试表.项目"+TRANSFORM(num))
cxm = "项目"+TRANSFORM(num)
SELECT DISTINCT &cxm FROM 测试表 ORDER BY &cxm INTO ARRAY arr
RETURN ASCAN(arr,vxm)
ENDFUNC
CREATE CURSOR 测试表 (姓名 C(8),得分 I,项目1 I,项目2 I,项目3 I)
INSERT INTO 测试表 VALUES ("AAA",0,1,3,2)
INSERT INTO 测试表 VALUES ("BBB",0,2,2,3)
INSERT INTO 测试表 VALUES ("CCC",0,2,2,4)
INSERT INTO 测试表 VALUES ("DDD",0,3,4,5)
UPDATE 测试表 SET 得分=fun(1)+fun(2)+fun(3)
SELECT * FROM 测试表
FUNCTION fun(num)
vxm = EVALUATE("测试表.项目"+TRANSFORM(num))
cxm = "项目"+TRANSFORM(num)
SELECT DISTINCT &cxm FROM 测试表 ORDER BY &cxm INTO ARRAY arr
RETURN ASCAN(arr,vxm)
ENDFUNC
谢谢吹版提供其他的解决思路