假设我有一个包含字段值的表:v1,v2,v3,v4
组合2行时: sum = v1 * v2 + v1 * v3 + ... + v3 * v4
组合3行时: sum = v1 * v2 * v3 + v1 * v2 * v3 + ... + v2 * v3 * v4
基本上首先获得所有行的组合,然后获得每个组合的产品的总和。我已经为这个任务写了一个vba类,但它非常笨拙,只是逐个计算每个组合。我想知道有没有更简单的方法来完成这项工作? SQL查询或线性代数,任何方式都可以简化过程,欢迎使用。 感谢。
答案 0 :(得分:0)
如果没有VBA,MS Access实际上无法做到这一点。 JET SQL能够汇总聚合中的数据,但没有Product聚合,JET SQL不支持用户定义的聚合。
如果您发布代码,可能会有人建议改进。
答案 1 :(得分:0)
谢谢Monty Wild,我已经明白了。
SELECT sum(t1.value*t2.value) AS aggrSum
FROM tbl AS t1
INNER JOIN tbl AS t2
ON t1.ID<t2.ID;
注意tbl.ID应该是唯一的。