2013-03-14 54 views
1

enter code here我在設計視圖中構建了一個聚合查詢。如果我平均原始數據,一切正常。只要我嘗試平均日誌([數據]),我收到一個錯誤: 「標準表達式中的數據類型不匹配」日誌([數據])上的聚合查詢失敗

我沒有在查詢中使用任何WHERE或HAVING子句,所以我沒有肯定它爲什麼會抱怨「標準表達」。在任何情況下,所有數據(原始數據和記錄數據)都是'double'類型的,所以我不確定類型不匹配發生在哪裏。

我甚至爆發了2個步驟,並設置了一個只計算日誌的查詢,第二個(基於第一個)執行聚合,但它引發相同的錯誤。

會有人有一些見解嗎?非常感謝! 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

請張貼的SQL。 – Fionnuala 2013-03-14 15:45:03

回答

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 
+0

oops ...你是對的,我沒有檢查NULL值。那個數據集中有一個(!)空值...並且做到了。謝謝! – yaq 2013-03-14 16:34:19