深入DAX應用的資料歷程是個標籤,作用在各欄位的值,依據源自資料模型實體欄位而回傳資料表函數。如果改變資料名稱,藉由資料歷程依然可以正確識別對應欄位;除非資料表函數使用DAX運算式取代直接參照欄位,這時中斷既有資料歷程。
以上方功能列表新增資料表,參照台糖歷史資料庫,運用以下DAX運算式倒出資料表:
CategoryValue = values (Categories [CategoryName])
values函數回傳的資料表繼承了模型在關聯傳遞篩選,由DAX判別來自Categories資料表的[CategoryName]欄位。
運算式是單純直接參照某個欄位才會維持資料歷程。如果Categories[CategoryName]加個空字串不會改變欄位內容,但是回傳的資料行屬於計算後的結果,因此打斷了資料歷程。
即使是計算來自不同資料表的欄位組成同一個資料表,每一個欄位仍有自己的資料歷程。
資料歷程可以透過DAX的"TreatAs"函數進行改變,函數定義如下:
TreatAs(資料表運算式,<參照的目標資料行>[,<參照的目標資料行>[……]]]])
TreatAs的第一個參數是某個資料表,接著是參照資料行的列表,其中數量要跟第一個參數回傳的資料表內資料行數一樣。
如果每個資料行標記了輸入參數所指定的參照欄位之資料歷程,包含的某個值沒有儲存在所參照的資料歷程欄位之內,TreatAs會移除資料表裡的值。