2014-03-06 54 views
1

基於Access中的下列SQL ...如何用零填充交叉表查詢中的空值?

TRANSFORM Sum([Shape_Length]/5280) AS MILES 
SELECT "ONSHORE" AS Type, Sum(qry_CurYrTrans.Miles) AS [Total Of Miles] 
FROM qry_CurYrTrans 
GROUP BY "ONSHORE" 
PIVOT qry_CurYrTrans.QComb IN ('1_HCA_PT','2_HCA_PT','3_HCA_PT','4_HCA_PT'); 

...我的結果返回了以下數據表:

| Type  | Total Of Miles | 1_HCA_PT | 2_HCA_PT | 3_HCA_PT | 4_HCA_PT | 
| ONSHORE | 31.38   |   | 0.30  | 7.80  |   | 

這個結果正是我想要除了我想看什麼歸零的單元格爲零。

這樣做有什麼選擇?如果可能的話,我想避免使用子查詢。我還希望查詢在Access的設計視圖中保持可編輯狀態。

回答

2

我認爲你必須使用Nz函數,它將允許你將NULL轉換爲另一個值。在這種情況下,我使用函數的(可選)部分說:「如果Sum([Shape_Length]/5280)爲NULL,則將其設置爲0」。你可能必須使用0左右的引號,我不記得了。

TRANSFORM Nz(Sum([Shape_Length]/5280), 0) AS MILES 
SELECT "ONSHORE" AS Type, Sum(qry_CurYrTrans.Miles) AS [Total Of Miles] 
FROM qry_CurYrTrans 
GROUP BY "ONSHORE" 
PIVOT qry_CurYrTrans.QComb IN ('1_HCA_PT','2_HCA_PT','3_HCA_PT','4_HCA_PT'); 
+0

謝謝。那就是訣竅。輕鬆活潑的。 –