Mdx если ошибка

Check whether the expression has generated an error.

Parameters

Name Type Cardinality Default value
  expression  one   

Return

boolean

Description

Check whether the expression has generated an error.

See Also

Error

Examples


isError( … )

XMLA Properties

Find here the value of the XMLA properties when not specified otherwise.

icCube v8.4.1+05-May-2023 09:50:51 CEST

Permalink

Cannot retrieve contributors at this time

title description ms.date ms.service ms.custom ms.topic ms.author ms.reviewer author

Error Handling (MDX) | Microsoft Docs

Learn how each cube can control how errors within a Multidimensional Expressions (MDX) script are handled.

05/02/2018

analysis-services

mdx

conceptual

owend

owend

minewiskan

[!INCLUDEappliesto-sqlas]
Each cube can control how errors within a Multidimensional Expressions (MDX) script are handled. Error handling is done through the ScriptErrorHandlingMode enumerator. The possible values for this enumerator are:

IgnoreNone
Causes the server to raise an error when [!INCLUDEmsCoName] [!INCLUDEssNoVersion] [!INCLUDEssASnoversion] finds any error in the MDX script.

IgnoreAll
Causes the server to ignore all commands in the MDX script that contain an error, including syntax errors, name resolution errors, and more.

See Also

xref:Microsoft.AnalysisServices.Cube.ScriptErrorHandlingMode%2A

SSAS : How to handle #Error in Mdx or in calculated measures + IsError()


when we are developing certain measures where there is no data at present but we need to create that measure now . For example  i need to create a Measure which calculate succeesRate of a particular application called Wx .

CREATE MEMBER CURRENTCUBE.[Measures].[Wx SR]
AS IIf([Measures].[SuccessRate] > 0,([Measures].[SuccessRate],([Application].[Application].&[Wx])),null),
FORMAT_STRING = «Standard»,
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = ‘DRA Rate Count’;

As there is no data for that application we will get  when we Query that measure we will get the result as  #Error

To handle this error in mdx we need use the Function IsError()

Syntax:

MEMBER [KPI Value] As iif(IsError(KPIValue(«Wx SR»)),0,KPIValue(«Wx SR»))

Popular posts from this blog

SSAS Dynamic Partitioning Using AMO Objects in SSIS Script Task

Image

1.      Introduction A partition is a container for a portion of the measure group data. Every measure group has at least one partition; this partition is created when the measure group is defined. When you create a new partition for a measure group, the new partition is added to the set of partitions that already exist for the measure group. Partitions are a powerful and flexible means of managing cubes, especially large cubes. Processing a smaller amount of data will improve processing performance by decreasing processing time. It is also very easy to maintain the cube .By default each measuregroup have one Partition but for better processing performance and query performance we need to have multiple partitions based on criteria. The best way to design partition is based on date column.   Dynamic Partitioning is an automation of partition creation, deletion, merging and processing etc.   Without any manual intervention .it will reduce cost as well as human errors for handling t

SSAS : A connection cannot be made to redirector. Ensure that ‘SQL Browser’ service is running. (Microsoft.AnalysisServices.AdomdClient). + Solution

Problem : have installed Analysis service on my server machine through remote login from my service account. I am able to open Analysis services from there. When I open SSMS from the same service account on my local machine, I am not able to connect to that Analysis service. It is giving me error by saying : «A connection cannot be made to redirector. Ensure that ‘SQL Browser’ service is running. (Microsoft.AnalysisServices.AdomdClient). A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connection host has failed to respond 10.245.192.111:2382(System).» Solution : Based on my research, the issue was caused by the Browser Service account was changed to the domain account. In your scenario, you can try to connect to the Analysis Service using <Servername>:2383 instead of instance name. Or you can change the Browser Service account to «Local System».

SSIS : SSIS Error code 0xC020200E

SSIS Error : [Flat File Source [1]] Error: Cannot open the datafile » \SQL-CPPDynaTraceDev1report_2014-01-17_00-00-05.csv «. [SSIS.Pipeline] Error: component «Flat File Source» (1) failed the pre-execute phase and returned error code 0xC020200E. Description: this error is due to permissions issue to the file you are trying to open Solution: check the permissions on the file that you are trying to access and adapt that you must have write access to the location/file If you have permission then remove the connection and add connection again then it will work  

  • Remove From My Forums
  • Question

  • Hello Everyone,

    I have an MDX query

    WITH MEMBER [Measures].[Parm1] AS 
    [Member].[Member Deceased Year].currentmember.member_caption MEMBER [Measures].[ResultValue] 
    AS ([Month].[Calendar].[Month].&[20150531], [Measures].[Member Count]) 
    SELECT ({[Measures].[Parm1],[Measures].[ResultValue]}) ON COLUMNS, 
    ORDER([Member].[Member Deceased Year].[Member Deceased Year], [Measures].[Parm1], DESC) ON ROWS 
    FROM [TXERSDW]
    

    Now from the Above query I am resulting with NULL as Parm1 values, I need to replace with a value of 12-31-9999 in the Parm1 if there are NULLS.

    Please help on this.


    Thanks, Please Help People When they need..!!! Mark as answered if your problem is solved.

Answers

  • Hi BKomm,

    IsEmpty(MDX) : Returns whether the evaluated expression is the empty cell value.

    Syntax: IsEmpty(Value_Expression)

    Remarks: Is Empty Function Returns True if the evaluated expression is an empty cell value. Otherwise, this function returns false.

    Example:

    WITH MEMBER [Measures].[IsNullReplacement] As
    	IIF(ISEMPTY([Measures].[Reseller Order Quantity]) , 'UseOfIsnull' , [Measures].[Reseller Order Quantity])
    select
    [Date].[Fiscal].[Fiscal Year]
    on columns,
    	[Measures].[IsNullReplacement] on rows
    from
    [Adventure Works]

    Result:

    IsemptyResult

    For more information please visit
    https://msdn.microsoft.com/en-us/library/ms145507.aspx?f=255&MSPPError=-2147217396

    Regards,

    Balwant.


    Failure in Life is failure to try… PGDCA-98(South Gujarat University),MCSA (SQL 2012) , MCTS (SQL Server 2005) http://blog.vspatel.co.uk/

    • Marked as answer by

      Tuesday, October 13, 2015 4:39 PM

Каталог статей

  • MDX
    • 1 Базовая грамматика
    • 2 оси
      • 2.1 Размеры среза
      • 2.2 Члены по умолчанию
      • 2.3 Габаритные размеры
    • 3-кортежи и множества
      • 3.1 Кортеж
      • 3.2 Сбор
    • 4 элемента измерения
      • 4.1 Объем участников
      • 4.2 Все участники
      • 4.3 Нижние члены
      • 4.4 Атрибуты элемента
    • 5 Установить операции
      • 5.1 NON EMPTY
      • 5.2 CROSS JOIN
      • 5.3 FILTER
      • 5.4 ORDER
    • 6 Расчетные элементы
      • 6.1 Приоритет формул (порядок решения)
    • 7 Назовите коллекцию
    • 8 функций
      • 8.1 Функции-члены
      • 8.2 Агрегатные функции
      • 8.3 union
      • 8.4 Except
      • 8.5 Head/Tail
      • 8.6 .SIBLINGS
      • 8.7 .MEMBERS
      • 8.8 DESCENDANTS
      • 8.9 DrillDownLevel(set,[level])
      • 8.10 DrillDownLevelBottom(set,index[,level][,numeric])
      • 8.11 DrillDownLevelBTop(set,index[,level][,numeric])
      • 8.12 DrillDownMember
      • 8.13 TopCount возвращает коллекцию первых n данных
      • 8.14 Статистические функции

MDX

MDX (многомерные выражения) — это язык запросов для многомерных баз данных (баз данных OLAP).

Mondrian проанализирует многомерные выражения и преобразует их в SQL для запроса реляционных баз данных (может быть несколько запросов).

У многомерных выражений много содержимого и мощных функций. Здесь представлены только самые основные и важные части.

1 Базовая грамматика

Ниже приведены два оператора запроса многомерных выражений и их результаты.

Утверждение 1:

SELECT
    { [Measures].[Dollar Sales], [Measures].[Unit Sales] } on columns,
    { [Time].[Q1, 2005], [Time].[Q2, 2005] } on rows
FROM [Sales]
WHERE ([Customer].[MA])

Положение 2:

SELECT
    { [Time].[Q1, 2005], [Time].[Q2, 2005], [Time].[Q3, 2005] } on columns,
    { [Customer].[MA], [Customer].[CT] } on rows
FROM Sales
WHERE ( [Measures].[Dollar Sales] )

В первом предложении запрашиваются продажи и штучные продажи клиента [Customer]. [MA] в первом и втором кварталах 2005 года.

Второй оператор запрашивает продажи двух клиентов [Customer]. [MA], [Customer]. [CT] за первые три квартала 2005 года.

Как видите, mdx имеет структуру, аналогичную sql, а также состоит из трех частей: select, from и where. Но есть много отличий.

  • Предложение Select определяет набор и помещает его на ось.
  • Предложение From указывает, из какого куба данных запрашивать.
  • Имя измерения, имя уровня, имя элемента измерения и т. Д. Заключены в квадратные скобки ([]), чтобы избежать путаницы между именами и функциями (имя функции
    без квадратных скобок), а разные части разделяются точками (.).
  • Элементы разделяются запятыми (,).
  • Предложение Where определяет срез, то есть ограничение на элементы измерений, которые не отображаются на оси.
  • Mdx не имеет группы по предложению. На самом деле группировка неявная.
  • Mdx не имеет порядка слов. Сортировка может выполняться только по определенной оси с помощью функции сортировки.
  • Как и sql, mdx нечувствителен к регистру и может ветвиться по желанию.
  • Mdx также может содержать комментарии, помимо поддержки sql-комментариев, он также поддерживает комментарии // и / *… * /.

2 оси

Используйте синтаксис on {axis} для назначения размеров осям (оси, множественные оси). Запрос может иметь несколько осей.

Различные оси разделяются запятыми, и порядок присвоения не имеет значения. Но если вы измените ось (например, A в столбцах, B в строках на A в строках, B в столбцах), строки и столбцы результата также будут транспонированы.

Ось представлена ​​осью (0), осью (1), осью (2) …,Первые пять осей могут использовать псевдонимы Columns, Rows, Pages, Chapters, Sections.. Поэтому по столбцам эквивалентно по оси (0). Когда осей больше 5, для выражения можно использовать только ось (5), ось (6) … (такое количество осей редко требуется).

Многие реализации (включая Mondrian) поддерживают только использование чисел для представления оси, поэтому столбцы можно записать как 0. Ось (0) и псевдоним могут быть смешаны, например, возможен следующий оператор:

SELECT
{ [Time].[Q1, 2005], [Time].[Q2, 2005] } on axis(0),
{ [Customer].[MA], [Customer].[CT] } on rows
FROM Sales

Ось должна начинаться с 0 и быть непрерывной, и ее нельзя пропустить. Следующее не допускается:

SELECT
{ [Time].[Q1, 2005], [Time].[Q2, 2005] } on rows,
{ [Customer].[MA], [Customer].[CT] } on pages
FROM Sales

Ошибка, ось оси (0) (столбцы) пропущена.

В большинстве запросов обычно используются две оси. Возможна также одна ось, даже 0 осей.

Если осей больше двух, они не могут быть представлены на плоскости. Если имеется более двух измерений, вам необходимо нанести несколько размеров (после пересечения) на одной оси.

2.1 Размеры среза

Измерение Slice (Slice) — это измерение, которое появляется в предложении WHERE оператора MDX и, как и SQL, представляет собой ограничение для набора данных. Например, инструкция MDX:

SELECT
{[Product].[All Products].[Food], [Product].[All Products].[Drink]} ON COLUMNS
FROM [Sales]
WHERE [Time].[Year].[2005]

Ограничен диапазон данных запроса, только до 2005 года. Синтаксис отличается от SQL. [Время]. [Год]. [2005] (является кортежем) сам представляет собой условие. Это можно рассматривать как срез куба данных с определенного направления (от направления измерения «Время»), чтобы получить субкуб, поэтому он называется срезом.

Размер среза не отображается на оси. Измерение времени, указанное выше, не будет отображаться на оси.

Измерение не может отображаться одновременно в измерении оси (измерение SELECT) и измерении среза.

2.2 Члены по умолчанию

Если измерение не отображается ни в измерении оси, ни в измерении среза, для сечения будет использоваться элемент измерения по умолчанию (уровень по умолчанию). Элементом общего измерения по умолчанию является «Все xxx», поэтому по умолчанию выполняется агрегирование данных всех элементов этого измерения. Например:

SELECT {[Time].[Year].Members } ON COLUMNS
FROM [Sales]

Измерение продукта не отображается в измерении оси и измерении среза. Если элемент Product по умолчанию — [Все продукты], он будет запрашивать сводку продаж всех продуктов, что соответствует привычкам людей. Вышеприведенное утверждение эквивалентно:

SELECT {[Time].[Year].Members } ON COLUMNS
FROM [Sales]
WHERE [Product].[ All Products]

У измерения есть функция defaultMember, которая может возвращать член измерения по умолчанию, поэтому она также эквивалентна:

SELECT {[Time].[Year].Members } ON COLUMNS
FROM [Sales]
WHERE [Product]. defaultMember

За исключением измерения продукта, другие измерения, которые не отображаются в измерении оси и измерении среза, также совпадают.

2.3 Габаритные размеры

Измерение меры (для единообразия, измерение можно рассматривать как измерение: измерение показателей) не имеет элемента «Все xxx», и его член по умолчанию может быть явно установлен. Если он не задан, это первая мера. Если мерой по умолчанию является [Продажи в магазине], следующий запрос

SELECT {[Time].[Year].Members } ON COLUMNS
FROM [Sales]

с участием

SELECT {[Time].[Year].Members } ON COLUMNS
FROM [Sales]
WHERE [Measures]. [Store Sales]

Эквивалентны. (Не уверен, что это правильно)

Элемент измерения по умолчанию, независимо от того, есть ли элемент «Все» (обычно он должен быть), может быть установлен в файле схемы.

Если элемент по умолчанию не задан явно, по умолчанию используется элемент «Все». Если элемент «Все» отсутствует, элемент по умолчанию является первым элементом.

3-кортежи и множества

Кортежи и наборы — это два типа данных в многомерных выражениях, а также компоненты операторов многомерных выражений.

3.1 Кортеж

Кортежи используются для определения срезов из многомерных данных; они представляют собой упорядоченную коллекцию отдельных элементов в одном или нескольких измерениях. Кортеж не содержит нескольких элементов из одного измерения (можно понимать как координаты), кортеж окружен ().

([Customer].[Chicago, IL], [Time].[Jan, 2005])

Кортеж может представлять собой часть куба. Кортежи, построенные в этом синтаксисе, можно использовать напрямую

SELECT
    { ([Time].[2005], [Measures].[Dollar Sales]), ([Time].[Feb, 2005],[Measures].[Unit Sales]) ON COLUMNS ,
    { [Product].[Tools], [Product].[Toys]} ON ROWS
FROM [Sales]
  • Кортежи не могут быть вложенными
  • Предложение where также является кортежем для указания среза данных

3.2 Сбор

Set — это упорядоченная коллекция из нуля, одного или нескольких кортежей. Наборы чаще всего используются для определения размеров осей и размеров среза в запросах Mdx и могут также иметь только один кортеж или могут быть пустыми в некоторых случаях. В синтаксисе Mdx кортежи используют фигурные скобки {} для создания набора.

В отличие от математических коллекций, кортеж в коллекции многомерных выражений может появляться несколько раз, и порядок важен.

Например, {[Клиент]. [MA], [Клиент]. [CT]} означает набор, в котором есть два члена измерения клиента.

Все кортежи в наборе должны иметь одинаковую размерность, то есть указанные размеры и их порядок.

Использование следующего набора приведет к сообщению об ошибке, поскольку порядок размеров отличается:

{ ( [Time].[2005], [Measures].[Dollar Sales] ), ( [Measures].[Unit Sales], [Time].[Feb, 2005] ) }

Многие функции могут возвращать коллекцию

4 элемента измерения

Чтобы разместить элементы измерения на оси, вы можете перечислить элементы измерения, например {[Клиент]. [MA], [Клиент]. [CT]}. Вы также можете получить коллекцию членов с помощью синтаксиса диапазона или функции.

4.1 Объем участников

Синтаксис двоеточия (:) может указывать на диапазон членов. Перед двоеточием и после него находятся два члена одного уровня: начальная и конечная точки.

SELECT
    { [Time].[2003] : [Time].[2008] } on columns,
    { [Product].[Drinks] : [Product].[Bread] } on rows
FROM [Sales]

Измерение времени представляет период с 2003 по 2008 год (6 элементов), а измерение продукта представляет диапазон от напитков до хлеба. Обычно это связано с методом сортировки.

Коллекция может содержать вложенные коллекции. Например, следующий сборник содержит первые три месяца и следующие три месяца 2001 года.

{ { [Time].[January-2001] : [Time].[March-2001] } ,{ [Time].[October-2001] : [Time].[December-2001] } }

4.2 Все участники

В большинстве случаев вам нужно получить все элементы измерения, уровня и слоя. В настоящее время вы можете использовать операцию (функцию) .Members. Например, [Время]. [Годы]. Участники могут получить все годы.

SELECT
    { [Time].[Years].Members} ON COLUMNS,
    { [Product].[Line].Members} ON ROWS
FROM [SteelWheelsSales]
WHERE [Measures].[sales]

Этот оператор запрашивает продажи за все годы и все продуктовые линейки, указывая год в столбце и продуктовую линейку в строке.

4.3 Нижние члены

Иногда необходимо получить всех членов следующего уровня члена, для этого используется функция **. Children **. Это часто используется во время буровых работ.

Например, чтобы получить все продукты линейки Classic Cars, вы можете сделать это

[Product].[Line].[Classic Cars].Children

[Продукт]. [Линия]. [Классические автомобили] является членом слоя «Линия» измерения «Продукт».

. Дети могут получать только прямых подчиненных членов. Если вам нужно несколько уровней, вам нужно использовать функцию Descendants (). Синтаксис:

Descendants (member [, [ level ] [, flag]] )

Descendants возвращает элементы уровня ниже элемента-члена.У необязательного флага flag есть несколько параметров, позволяющих установить элементы уровней выше самого низкого уровня.

Ниже приведен пример запроса продаж инструментов и игрушек в каждом месяце 2005 года. Поскольку между двумя уровнями года и месяца существует квартальный уровень, [Время] использовать нельзя. .. [2005] .Дети.

SELECT
    { [Product].[Tools], [Product].[Toys] } ON COLUMNS,
    Descendants ([Time].[2005],[Time].[Month],SELF_AND_BEFORE) ON ROWS
FROM Sales
WHERE [Measures].[Dollar Sales]

Если флаг установлен в SELF_AND_BEFORE, вы можете видеть, что строка содержит 2005 и каждый квартал (если он установлен в SELF, он не будет включен).

4.4 Атрибуты элемента

Иногда вы хотите получить атрибуты элементов измерения (некоторые столбцы в таблице измерения), тогда вы можете использовать предложение свойств dimemsion. Ключевое слово dimemsion можно опустить.

Следующий запрос также получает атрибут почтового индекса местоположения клиента:

SELECT
    { [Customer].[Akron, OH].Children }
    DIMENSION PROPERTIES [Customer].[Zip Code]
    on columns,
    { [Product].[Category].Members } on rows
FROM Sales
WHERE ([Measures].[Units Sold], [Time].[July 3, 2005])

5 Установить операции

5.1 NON EMPTY

В многомерном пространстве данные часто скудны. Например: не каждый продукт продается всем покупателям, и не каждый покупатель покупает продукт в каждый период. Если все элементы измерения пересекутся, чтобы получить отчет, будет много пустых строк и столбцов.
Чтобы удалить эти пустые строки из результатов запроса:

SELECT
    { [Time].[Jan,2005],[Time].[Feb,2005] } ON COLUMNS ,
    NON EMPTY { [Product].[Toys], [Product].[Toys].Children } ON ROWS
FROM Sales
WHERE ([Measures].[Dollar Sales], [Customer].[TX])

Таким образом удаляются пустые строки. Непустой можно использовать на любой оси.

5.2 CROSS JOIN

Во многих случаях нам нужно скрестить два разных набора, то есть получить все комбинации членов этих двух наборов. Самым прямым способом получить комбинацию является функция CrossJoin (), ее синтаксис — CrossJoin (set1, set2).
Следующий оператор разделяет два показателя в каждом квартале:

SELECT
CrossJoin (
        { [Time].[Q1, 2005], [Time].[Q2, 2005]},
        { [Measures].[Dollar Sales], [Measures].[Unit Sales] }
    ) ON COLUMNS,
    { [Product].[Tools], [Product].[Toys] } ON ROWS
FROM Sales

Результат CrossJoin — это набор. Следовательно, поддерживается вложение CrossJoin.

5.3 FILTER

Функция Filter используется для фильтрации набора, она принимает набор и логическое выражение в качестве параметров
Filter (set,boolean-expression)。

Например, следующее выражение возвращает коллекцию категорий продуктов со связанными продажами продуктов не менее 500.

Filter (
    { [Product].[Product Category].Members },
    [Measures].[Dollar Sales] >= 500
)

Требуется объем продаж не менее 150 и объем продаж, превышающий стоимость в 1,2 раза.

Filter (
    { [Product].[Product Category].Members },
    ([Measures].[Dollar Sales] >= 1.2 *[Measures].[Dollar Costs])
    AND [Measures].[Dollar Sales] >= 150
)

5.4 ORDER

Функция Order () используется для сортировки коллекции, синтаксис:

Order (set1, expression[,ASC| DESC | BASC | BDESC])

пример:

SELECT
    { [Measures].[Dollar Sales] } on columns,
    Order (
        [Product].[Product Category].Members,
        [Measures].[Dollar Sales],
        BDESC
    ) on rows
FROM [Sales]
WHERE [Time].[2004]

6 Расчетные элементы

Вычисляемые столбцы можно добавлять в sql. То же самое можно сделать в многомерных выражениях, которые в многомерных выражениях называются CalculatedMember. Поскольку многомерные выражения работают с многомерными данными, вычисление элементов фактически добавляет элементы в измерение.
Синтаксис:

with
 член ID члена как 'выражение' [, атрибут ...]
select ...

Используйте одинарные кавычки, чтобы заключить выражение в кавычки.
В следующем примере добавляется новый показатель [Средняя продажная цена].

WITH
    MEMBER [Measures].[Avg Sales Price] AS
    '[Measures].[Dollar Sales] / [Measures].[Unit Sales]'
SELECT
    { [Measures].[Dollar Sales], [Measures].[Unit Sales],
        [Measures].[Avg Sales Price]
    } on columns,
    { [Time].[Q1, 2005], [Time].[Q2, 2005] } on rows
FROM Sales
WHERE ([Customer].[MA])

6.1 Приоритет формул (порядок решения)

Когда более одного измерения добавляют вычисляемые элементы, поскольку каждый элемент измерения имеет формулу вычисления, на пересечении этих измерений может быть несколько последовательностей вычислений. В настоящее время нет необходимости рассматривать вопрос о приоритете формулы. Поэтому был введен атрибут SOLVE_ORDER:

WITH
    MEMBER [Measures].[Avg Sales Price] AS
    '[Measures].[Dollar Sales] / [Measures].[Unit Sales]',
    SOLVE_ORDER=0
    MEMBER [Time].[Q1 to Q2 Growth] AS
    '[Time].[Q2, 2005]- [Time].[Q1, 2005]',
    SOLVE_ORDER=1
SELECT
    { [Measures].[Dollar Sales], [Measures].[Unit Sales],
    [Measures].[Avg Sales Price]
    } on columns,
    { [Time].[Q1, 2005], [Time].[Q2, 2005], [Time].[Q1 to Q2 Growth] } on rows
FROM [Sales]
WHERE ([Customer].[MA])

7 Назовите коллекцию

Именованный набор позволяет использовать предопределенный набор в последующих операторах. Синтаксис аналогичен вычисляемым членам.

with
    установить идентификатор коллекции как 'выражение коллекции'
select ...
WITH
    SET [User Selection] AS '{ [Product].[Action Figures], [Product].[Dolls] }'
    MEMBER [Product].[UserTotal] AS 'Sum ( [User Selection] )'
SELECT
    { [Time].[Jan, 2005], [Time].[Feb, 2005] } ON COLUMNS,
    { [Product].[Toys], [User Selection], [Product].[UserTotal] } ON ROWS
FROM Sales
WHERE ([Measures].[Unit Sales])

8 функций

http://mondrian.pentaho.com/documentation/mdx.php
Перечислите некоторые важные из них, отсортированные по типу возврата.

8.1 Функции-члены

  • .currentMember
  • .parent
  • .prevMember/.nextMember
  • .firstChild/.lastChild
  • .firstSibling/.lastSibling
  • Ancestor(, )
  • Ancestor(, )
  • LAG возвращает первого члена этого уровня из текущего члена.
  • .Lag (n) n — индекс, 0 — сам, 1 — предыдущий (.prevMember)
  • LEAD похож на Lag (), но в противоположном направлении
  • OpenPeriod возвращает первого члена-потомка на определенном уровне.

    Синтаксис:

OpeningPeriod([[, ]])。
  • ClosingPeriod возвращает последнего члена-потомка на определенном уровне
  • PARALLELPERIOD возвращает член, соответствующий тому же уровню члена
  • ParallelPeriod ([[, [,]]]) необходимо использовать при взятии того же периода в измерении времени (например, за тот же период в прошлом году).

8.2 Агрегатные функции

Члены, дочерние элементы, потомки, crossJoin, filter и order, представленные ранее, являются агрегатными функциями.

8.3 union

Объедините две коллекции. Синтаксис: Union (set1, set2 [, ALL]) Флаг All указывает на сохранение повторяющихся элементов.

8.4 Except

Удалите элементы set2 из set1, то есть найдите разницу между двумя наборами. Кроме (набор1, набор2 [, ВСЕ])

8.5 Head/Tail

Возвращает набор элементов Head / Tail. Голова / Хвост (набор [,)).

8.6 .SIBLINGS

Возвращает братьев и сестер члена, включая его самого. .Братья и сестры.

8.7 .MEMBERS

Возвращает элементы измерения / уровня. .Члены

8.8 DESCENDANTS

Возвращает потомков члена. Потомки (член, [уровень [, флаг]])

флаг может быть: SELF, BEFORE, SELF_BEFORE_AFTER, LEAVES, AFTER, SELF_AND_BEFORE, SELF_AND_AFTER.

8.9 DrillDownLevel(set,[level])

Разверните элементы (уровень один).

8.10 DrillDownLevelBottom(set,index[,level][,numeric])

Перейти к элементам самого низкого уровня.

8.11 DrillDownLevelBTop(set,index[,level][,numeric])

Перейдите к самому верхнему элементу.

8.12 DrillDownMember

Детализировать элементы набора 2. DrillDownMember (set1, set2 [, Recursive])

8.13 TopCount возвращает коллекцию первых n данных

(TopCount, BottomCount, TopPercent, Hierarchize ,etc.)

8.14 Статистические функции

count (set [,INCLUDEEMPTY])

Необязательный тег указывает кортеж, не содержащий данных

Sum (set [, числовое выражение]])

max / min / median / avg (установить [, числовое выражение]])

Логическая функция
IS
object is object2。
Например:
[Jan 2000].PrevMember IS NULL
[Jan 2000].Level IS [Time].[Month]

ISEMPTY

Определите, является ли значение пустым. Синтаксис: IsEmpey (выражение).

Строковая функция

NAME
возвращает названия измерений, уровней и т. д. Синтаксис: .Name

PROPERTIES

Возвращает значение атрибута члена. Синтаксис: .properties (<название свойства>)

Прочие функции

Вот несколько функций с переменными типами возврата.

LiF

Возвращаемое значение, основанное на условиях, аналогично функции If в Excel. Синтаксис: lif (<логическое выражение>, <значение 1>, <значение 2>).

ITEM

Возвращает элементы коллекции в соответствии с индексом. Синтаксис: item (set,).
Обычно возвращаемый тип — кортеж.

Понравилась статья? Поделить с друзьями:
  • Mdv коды ошибок наружного блока
  • Mcf100u dll ошибка
  • Mcedit ошибка unhandled exception
  • Mcc win64 shipping exe ошибка приложения halo
  • Mcafee ошибка 0