跨資料表運算設定
跨資料表運算設定
本功能提供針對同一資料表不同欄位與不同資料表不同欄位進行計算之方法,此功能可在同一空間統計單元及使
用圖層版本之條件下,提供統計地圖或是統計圖表之繪製以及回傳運算後之統計數值功能,運算式包含加減乘除
基本四則運算以及小括弧(),運算式參數設定如表列所示。
運算子 |
功能 |
功能說明 |
ad |
加號 |
計算運算子前之被加數欄位,與運算子後之加數欄位間的和 |
- |
減號 |
計算運算子前之被減數欄位,與運算子後之減數欄位間的差 |
* |
乘號 |
計算運算子前之被乘數欄位,與運算子後之乘數欄位間的積 |
/ |
除號 |
計算運算子前之被除數欄位,與運算子後之除數欄位間的商 |
( ) |
小括弧 |
括號內的部份要先計算,其餘則依循四則運算的先乘除後加減規則。 |
提醒:
1.使用者使用本功能時,應檢視選用資料是否含有負值資料,以及運算結果是否產生負值資料。
2.留意選用的統計地圖/統計圖表的繪製方式,以免因繪製方式本身的特性造成成果失真,如圓餅圖。
以下用以社會經濟資料庫中行政區國民小學統計_全國[AA9FE_A4C3]中國小學校數[SCH_CNT]與行政區單歲年齡組學
齡人口統計_全國[3A1FA_A4C9]中的6歲人口數[A6_CNT],計算雙北市各鄉鎮市區每所學校平均的預計新生人數。
程式碼如下:
建立空的陣列,設定行政區國民小學統計_全國資料表,並指定為b,同時指定使用的欄位與資料時間。
function init() {
var dataSet = new Array(); //建立空陣列,準備納入統計資料設定集合
dataSet.push({ //建立統計資料設定
tableName: "AA9FE_A4C3", //指定統計表
to: "b",
fieldsId: ["SCH_CNT "], //指定使用欄位
time: "105Y"
});
設定行政區單歲年齡組學齡人口統計_全國資料表,並指定為a,同時指定使用的欄位與資料時間。
dataSet.push({{ //建立統計資料設定
tableName: "3A1FA_A4C9", //指定統計表
to: "a",
fieldsId: ["A6_CNT"], //指定使用欄位
time: "106Y08M"
});
var timeOpts = { //指定統計時間
timeSeries: true
};
建立欄位計算式,並建立計算成果之名稱與單位。
var dataOption = { //設定來源統計資料物件
fieldFormula: "(a.A6_CNT / b.SCH_CNT)",
multiData: true,
dataTitle: "平均各國小新生數", //自訂統計資料之名稱
dataType: DataType.ADMIN, //選擇統計資料之類型
timeOpts: timeOpts, //設定時序繪圖功能
dataLevel: DataLevel.TOWN, //資料層級類型設定
unitOpts: {
unitTitle: '人/所' //自訂欄位名稱
}
}
指定計算的行政區範圍。
var areaSelect = { //指定行政區範圍
areaSelectType: AreaSelectType.DISTRICT,
districtType: DistrictType.COUNTY,
districtCode: ['63000', '65000']
};