SQL generation for PEL functions

The PerformancePoint Expression Language (PEL) compiler generates SQL code for many PEL functions. There are four distinct categories of SQL code-generation support:

  • Full support - compiler can always generate SQL

  • Varied support - compiler can always generate SQL for some forms of these functions, but can never generate SQL for other forms of the functions

  • Absolute support - compiler can generate SQL for functions as part of an absolute reference, but not as part of a relative reference

  • No support - compiler can never generate SQL

Full Support

The following table lists functions for which the compiler can always generate SQL code.

Ancestor (PEL)

Children (PEL)

CurrentMember (PEL)

Lag (PEL)

Lead (PEL)

NextMember (PEL)

Range (PEL)

Siblings (PEL)

DefaultMember (PEL)

Parent (PEL)

ParallelPeriod (PEL)

Ascendants (PEL)

ClosingPeriod (PEL)

LeafMembers (PEL)

OpeningPeriod (PEL)

DataMember (PEL)

PrevMember (PEL)

.

Varied Support

The compiler can always generate SQL code for some forms of these functions, and provides no support for other forms.

That is, each of these functions supports two argument forms, such as Avg(Scope_Expression [, Numeric_Expression]). When the function is used with a single argument, the compiler can always generate SQL code. When the function is used with two arguments, the compiler cannot generate SQL code.

The following table shows the functions that have varied support.

Avg (PEL)

Count (PEL) See table footnote

Max (PEL)

Min (PEL)

StdDev (PEL)

StdDevP (PEL)

Sum (PEL)

Variance (PEL)

VarianceP (PEL)

.

Note

Count without a second argument or with INCLUDEEMPTY for its second argument is category Full Support. Otherwise, it is category Absolute Support.

Absolute Support

The compiler can generate SQL code for these functions when the function is part of an absolute reference. The compiler cannot generate SQL code when the function is part of a relative reference.

For example, the compiler can generate SQL code for the following use of the Lag (PEL) function, because all the modifier expressions are absolute references:[Time].[Fiscal].[January 2006].Lag(1)

In contrast, the compiler cannot generate SQL code for the next use of the same Lag function. In the following statement, the CurrentMember (PEL) expression is a relative reference: [Time].[Fiscal].CurrentMember.Lag(1)

The following table lists functions for which the compiler can generate SQL code when the function is part of an absolute reference.

Cousin (PEL)

Descendants (PEL) See table footnote.

Except (PEL)

Filter (PEL)

FirstChild (PEL)

FirstSibling (PEL)

Generate (PEL)

Hierarchy (PEL)

IsAncestor (PEL)

Intersect (PEL)

IsSibling (PEL)

IsLeaf (PEL)

LastPeriods (PEL)

LastChild (PEL)

Level (PEL)

LastSibling (PEL)

Ordinal (PEL)

Members (PEL)

Union (PEL)

PeriodsToDate (PEL)

Note

Descendants with an integer argument is category Absolute Support, unless the call is equivalent to Children (member.Descendants(1, SELF)). In this case, the function is category Full Support.

No Support

The following table lists functions for which the compiler cannot generate SQL code.

AVE (PEL)

BottomCount (PEL)

BottomPercent (PEL)

BottomSum (PEL)

ClassificationFilterInclude (PEL)

CLO (PEL)

CLOAVE (PEL)

CLOAVEPRIOR (PEL)

Correlation (PEL)

Covariance (PEL)

CovarianceN (PEL)

HIST (PEL)

ICMethod (PEL)

Iif (PEL)

IPCON (PEL)

IPCON_1 (PEL)

IPMIN (PEL)

IPMIN_1 (PEL)

IPOWN (PEL)

IPOWN_1 (PEL)

LinRegIntercept (PEL)

LinRegPoint (PEL)

LinRegR2 (PEL)

LinRegSlope (PEL)

LinRegVariance (PEL)

Median (PEL)

Method (PEL)

MIN_PCON_1_IPCON_1 (PEL)

MIN_PCON_IPCON (PEL)

NullMemberOfDimension (PEL)

NullMemberOfHierarchy (PEL)

NullMemberOfLevel (PEL)

OPE (PEL)

PCON (PEL)

PCON_1 (PEL)

PMIN (PEL)

PMIN_1 (PEL)

POWN (PEL)

POWN_1 (PEL)

PRIORAVE (PEL)

Properties (PEL)

TopCount (PEL)

TopPercent (PEL)

TopSum (PEL)

TypeFilterExclude (PEL)

TypeFilterInclude (PEL)

VAR_MIN_PCON_IPCON_MIN_PCON_1_IPCON_1 (PEL)

VAR_PCON (PEL)

VAR_PMIN (PEL)

VAR_POWN (PEL)

VAROPE (PEL)

.

See Also

Other Resources

PEL functions