日志上的聚合查询失败([data])

时间:2013-03-14 15:40:52

标签: ms-access ms-access-2010 aggregate-functions

enter code here我正在设计视图中构建聚合查询。如果我平均原始数据,一切正常。一旦我尝试平均记录([数据]),我就会收到错误: “标准表达式中的数据类型不匹配”

我在查询中没有使用任何WHERE或HAVING子句,所以我不确定为什么它会抱怨“条件表达式”。在任何情况下,所有数据(原始和记录)都是'double'类型,所以我不确定类型不匹配的位置。

我甚至打破了这两个步骤并设置了一个只计算日志的查询,第二个(基于第一个)进行聚合,但它会抛出相同的错误。

有人会有一些见解吗?非常感谢!

PS:我甚至检查了原始数据的最小值和最大值;他们都是> 0.0,所以记录零或负数也不会发生。

代码:

这完全没问题:

SELECT Tbl_00__simRecord.simID, Avg(Tbl_01__obsFlows.[obsFlow_m3/s]) AS [meanObsFlow], 
                                Min(Tbl_01__obsFlows.[obsFlow_m3/s]) AS [MinOfobsFlow_m3/s], 
                                Max(Tbl_01__obsFlows.[obsFlow_m3/s]) AS [MaxOfobsFlow_m3/s]
FROM Tbl_00__simRecord, Tbl_01__obsFlows
GROUP BY Tbl_00__simRecord.simID;

然而,这失败了:

SELECT Tbl_00__simRecord.simID, Avg(Tbl_01__obsFlows.[obsFlow_m3/s])  AS [meanObsFlow], 
                                Min(Tbl_01__obsFlows.[obsFlow_m3/s])  AS [MinOfobsFlow_m3/s], 
                                Max(Tbl_01__obsFlows.[obsFlow_m3/s])  AS [MaxOfobsFlow_m3/s], 
                            Avg(Log(Tbl_01__obsFlows.[obsFlow_m3/s])) AS [meanLogObsFlow]
FROM Tbl_00__simRecord, Tbl_01__obsFlows
GROUP BY Tbl_00__simRecord.simID;

1 个答案:

答案 0 :(得分:0)

确保您拥有所有日志的值,这对我有用:

SELECT Table1.AText, Avg(Log([anumber])) AS Log1, Table1.ANumber
FROM Table1
GROUP BY Table1.AText, Table1.ANumber
HAVING (((Table1.ANumber)>0));

请注意此行Table1.ANumber> 0

所以你可以试试:

SELECT Tbl_00__simRecord.simID, 
   Avg(Tbl_01__obsFlows.[obsFlow_m3/s])  AS [meanObsFlow], 
   Min(Tbl_01__obsFlows.[obsFlow_m3/s])  AS [MinOfobsFlow_m3/s], 
   Max(Tbl_01__obsFlows.[obsFlow_m3/s])  AS [MaxOfobsFlow_m3/s], 
   Avg(Log(Tbl_01__obsFlows.[obsFlow_m3/s])) AS [meanLogObsFlow]
FROM Tbl_00__simRecord, Tbl_01__obsFlows
GROUP BY Tbl_00__simRecord.simID
HAVING Tbl_01__obsFlows.[obsFlow_m3/s] > 0