Udostępnij za pośrednictwem


Generowanie (MDX)

Kompleksowo każdego element członkowski innego zestaw, a następnie łączy wynikowe zestawy przez Unię.Alternatywnie, ta funkcja zwraca ciąg uzyskiwanej utworzony poprzez ocenę wyrażeniem nad zestaw.

Składnia

Set expression syntax
Generate( Set_Expression1 ,  Set_Expression2 [ , ALL ]  )

String expression syntax
Generate( Set_Expression1 ,  String_Expression [ ,Delimiter ]  )

Argumenty

  • Set_Expression1
    Prawidłowe wyrażenie Multidimensional Expressions (MDX), które zwraca zestaw.

  • Set_Expression2
    Prawidłowe wyrażenie Multidimensional Expressions (MDX), które zwraca zestaw.

  • String_Expression
    Wyrażenie prawidłowy ciąg jest zazwyczaj nazwą bieżący element członkowski każdej spójna kolekcja określonego (CurrentMember.Name) zestaw.

  • Delimiter
    Nieprawidłowy ogranicznik wyrażone jako ciąg wyrażenia.

Uwagi

Jeśli określono drugi zestaw Generate funkcja zwraca zestaw generowane przez zastosowanie krotek w drugim wartość każdej spójna kolekcja w pierwszym, , a następnie sprzęgnięcia zestawy wynikowe w Unii.Jeśli ALL jest określone, funkcja zachowuje duplikatów w wynikowym zestaw.

Jeśli określono wyrażeniem Generate funkcja zwraca wygenerowany przez oceny określone wyrażeniem przeciwko każdej spójna kolekcja w pierwszym ciąg zestaw, i następnie konkatenację wyniki.Opcjonalnie ciągu można ograniczać, oddzielając każdy wynik w wynikowy ciąg uzyskiwanej.

Przykłady

Zestaw

W poniższym przykładzie kwerenda zwraca zestaw zawierający miary Internet Sales amount cztery razy, ponieważ czterech członków zestawu [Data].[Rok kalendarzowy].[Rok kalendarzowy].CZŁONKOWIE:

SELECT 
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS
, {[Measures].[Internet Sales Amount]}, ALL)
ON 0
FROM [Adventure Works]

Usuwając wszystkie zmiany kwerendy, tak, aby Internet Sales Amount zwracany jest tylko jeden raz:

SELECT 
GENERATE( [Date].[Calendar Year].[Calendar Year].MEMBERS
, {[Measures].[Internet Sales Amount]})
ON 0
FROM [Adventure Works]

Najczęściej praktyczne wykorzystanie Generate do oceny złożonego ustawiono wyrażenie, takie jak TopCount nad zestaw elementów członkowskich.Następująca kwerenda przykład wyświetla top 10 produktów dla każdego roku kalendarzowego w wierszach:

SELECT 
{[Measures].[Internet Sales Amount]}
ON 0,
GENERATE( 
[Date].[Calendar Year].[Calendar Year].MEMBERS
, TOPCOUNT(
[Date].[Calendar Year].CURRENTMEMBER
[Product].[Product].[Product].MEMBERS
,10, [Measures].[Internet Sales Amount]))
ON 1
FROM [Adventure Works]

Zauważ, że różne 10 pierwszych jest wyświetlane dla każdego roku, a korzystanie z Generate jest jedynym sposobem uzyskania tego wyniku.Po prostu crossjoining lat kalendarzowych i zestaw 10 najlepszych produktów wyświetli 10 najlepszych produktów dla wszystkich czas, powtarzających się dla każdego roku, jak pokazano w następującym przykładzie:

SELECT 
{[Measures].[Internet Sales Amount]}
ON 0,
[Date].[Calendar Year].[Calendar Year].MEMBERS
TOPCOUNT(
[Product].[Product].[Product].MEMBERS
,10, [Measures].[Internet Sales Amount])
ON 1
FROM [Adventure Works]

String

Poniższy przykład ilustruje użycie Generate zwraca ciąg:

WITH 
MEMBER MEASURES.GENERATESTRINGDEMO AS
GENERATE( 
[Date].[Calendar Year].[Calendar Year].MEMBERS,
[Date].[Calendar Year].CURRENTMEMBER.NAME)
MEMBER MEASURES.GENERATEDELIMITEDSTRINGDEMO AS
GENERATE( 
[Date].[Calendar Year].[Calendar Year].MEMBERS,
[Date].[Calendar Year].CURRENTMEMBER.NAME, " AND ")
SELECT 
{MEASURES.GENERATESTRINGDEMO, MEASURES.GENERATEDELIMITEDSTRINGDEMO}
ON 0
FROM [Adventure Works]

Ostrzeżenie

Ta forma Generate funkcja może być przydatne podczas debugowania obliczeń, co pozwala zwrócić wyświetlanie nazwy wszystkich członków w ciąg zestaw.Może to być bardziej czytelny niż ścisłe reprezentacja MDX zestaw, SetToStr (MDX) zwraca wartość funkcja.

Zobacz także

Odwołanie