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;
答案 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