MS Access如何获得行组合的每个产品的总和?

时间:2013-07-22 03:29:25

标签: ms-access combinations

假设我有一个包含字段值的表: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查询或线性代数,任何方式都可以简化过程,欢迎使用。 感谢。

2 个答案:

答案 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应该是唯一的。