FoxPro循环中基于关联ID实现条件求和的方法咨询
FoxPro循环内条件求和的一行代码实现
你原来的写法不符合FoxPro语法规范,以下两种一行代码的方式都能实现你要的需求:
SQL查询方式:
SELECT NVL(SUM(val), 0) INTO sumvar FROM table2 WHERE id = table1.id这条语句会将table2中id匹配当前table1.id的所有val值求和,存入
sumvar变量。用NVL函数可以确保当没有匹配记录时,返回0而非空值(.NULL.)。原生CALCULATE命令方式:
CALCULATE SUM(val) TO sumvar FOR table2.id = table1.id这是FoxPro的原生计算命令,同样能完成求和。如果需要每次循环都重置结果,建议先执行
sumvar = 0再运行这条命令,避免无匹配记录时保留上一次的求和值。
不需要单独声明public sumvar,上述语句会自动创建对应的内存变量。
内容的提问来源于stack exchange,提问作者DizzleBeans
相关产品推荐
相关产品推荐

