访问查询复杂性:分层计算

时间:2012-06-25 22:03:39

标签: ms-access ms-access-2007

我正在尝试对存储在Access中的数据运行一些复杂的计算(类似于限制)。我能够通过使用分层/嵌套查询来执行计算,其中每个表达式都基于最后一个的结果。我的问题是,在大约第9次迭代时,我得到一个“查询太复杂”的错误。我的理解是因为Access可以同时执行的子查询数量有限。是否有在SELECT语句中使用AS的替代方法,允许我在同一查询中执行更多迭代?我试图简化我的SQL以更好地展示我在做什么(忽略在示例中执行的实际计算)。

SELECT Tbl_1.VarA, Tbl_1.VarB,
(VarA^2*([VarA]+[VarB])/2) AS EQ1,
(VarA^2*([VarA]+[EQ1])/2) AS EQ2
FROM Tbl_1

我目前的工作是将最后一次迭代保存到表中,然后对该值运行第二次查询。我觉得这是非常糟糕的做法。

我尝试过,但没有成功: (1)基于第一个查询 (2)用它们的值替换常量变量 (3)嵌套方程,即 (VarA ^ 2 *([VarA] +(VarA ^ 2 *([VarA] + [VarB])/ 2))/ 2)AS EQ2

如果我没有提到正确的话,我会事先道歉,因为我比较新。

1 个答案:

答案 0 :(得分:0)

尝试将计算列添加到表中,并将这些表达式用于EQ1和EQ2

http://msdn.microsoft.com/en-us/library/ff945943.aspx