1

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

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

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

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

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;
4

1 回答 1

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
于 2013-03-14T16:09:19.277 回答