虛擬數據表

在 DEFINE的 DAX 語句中引進虛擬數據表定義。

語法

[DEFINE 
    (
      TABLE <table name> = <table expression>
        [WITH VISUAL SHAPE
          (AXIS <axis name>
            (GROUP <column>[, <column>] + TOTAL <column>) +
            ORDER BY <column>[, <column>] +
          ) +
          [DENSIFY <string literal>]
        ]
    ) + 
]

(EVALUATE <table expression>) +

參數

數據表表達式會定義虛擬數據表的內容。 虛擬數據表只會定義在目前查詢的範圍中。

您可以選擇性地在虛擬資料表上定義視覺圖形。 視覺圖形用於視覺計算。 視覺圖形是由具有布爾值 DENSIFY 數據行的座標軸所組成。

軸定義為匯總群組的清單,後面接著依數據行的順序,以指定座標軸的排序方式。 匯總群組由一或多個數據行組成,然後由一個布爾總計數據行組成,指出每個數據列是否為目前匯總群組的小計。 FALSE 值表示目前數據列是詳細數據列(依目前匯總群組分組)。 TRUE 值表示目前的數據列已匯總(未依目前匯總群組分組)。

如果要求 DENSIFY 數據行,則視覺圖形會執行 Densification。 這表示除了原始數據表運算式中的數據列之外,我們也新增原始數據表運算式中不存在的座標軸值組合。 換句話說,我們會使用原始數據表表達式,從座標軸的交叉聯結執行左外部聯接。 DENSIFY 數據行中的 TRUE 值表示目前的數據列不在原始數據表運算式中,而且由 densification 程式新增。 這類數據列在所有量值數據行中都應該有空值(軸定義以外的數據行)。 DENSIFY 資料行中的 FALSE 值表示目前數據列來自原始數據表運算式。

傳回值

已定義虛擬數據表

備註

不同於變數,虛擬數據表有自己的譜系,而且不會從其定義的數據表運算式中攜帶譜系。

例

假設資料表 T 具有下列資料列:

年 產品 SalesAmount
2000 蘋果 10.1美元
2000 香蕉 $10.2
2001 蘋果 20.3美元
DEFINE TABLE data = SUMMARIZECOLUMNS(ROLLUPADDISSUBTOTAL(T[Year], "IsYearTotal"), ROLLUPADDISSUBTOTAL(T[Product], "IsProductTotal"), "Meausre", SUM(T[SalesAmount]))
  WITH VISUAL SHAPE
    AXIS ROWS GROUP [Year] TOTAL [IsYearTotal] ORDER BY [Year]
    AXIS COLUMNS GROUP [Product] TOTAL [IsProductTotal] ORDER BY [Product]
    DENSIFY "IsDensified"
EVALUATE data

傳回的結果為

data[Year] data[Product] data[IsYearTotal] data[IsProductTotal] data[Measure] data[IsDensified]
真 真 40.6美元 假
2000 假 真 20.3美元 假
2001 假 真 20.3美元 假
蘋果 真 假 30.4美元 假
2000 蘋果 假 假 10.1美元 假
2001 蘋果 假 假 20.3美元 假
香蕉 真 假 $10.2 假
2000 香蕉 假 假 $10.2 假
2001 香蕉 假 假 真