Поделиться через


Виртуальная таблица

Представляет определение виртуальной таблицы в инструкции 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 Банан ложный ложный истинный

DEFINE
EVALUATE
VAR
запросыDAX виртуальных столбцов