Виртуальная таблица
Представляет определение виртуальной таблицы в инструкции 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.
Ось определяется как список групп свертки, за которым следует список порядка по столбцам, чтобы указать порядок оси. Группа свертки состоит из одной или нескольких групп по столбцам, а затем один логический столбец TOTAL, указывающий, является ли каждая строка промежуточным для текущей группы свертки. FALSE значение указывает, что текущая строка — это строка сведений (группирование по текущей группе свертки). TRUE значение указывает, что текущая строка свернута (не группируется по текущей группе свертки).
Если запрашивается столбец DENSIFY, то визуальная фигура выполняет деденсификацию. Это означает, что в дополнение к строкам из исходного табличного выражения мы также добавим сочетание значений осей, которые не существуют в исходном выражении таблицы. Другими словами, мы делаем левое внешнее соединение из перекрестного соединения осей с исходным выражением таблицы. Значение TRUE в столбце DENSIFY указывает, что текущая строка не находится в исходном выражении таблицы и добавляется процессом деденсификации. Такая строка должна иметь пустое значение во всех столбцах мер (столбцы вне определений осей). Значение FALSE в столбце DENSIFY указывает, что текущая строка состоит из исходного табличного выражения.
Возвращаемое значение
Определена виртуальная таблица
Замечание
В отличие от переменных, виртуальная таблица имеет собственное происхождение и не несет происхождения из табличного выражения, из который он определен.
Пример
Предположим, что таблица 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 | Банан | ложный | ложный | истинный |