Udostępnij za pośrednictwem


Generowanie (MDX)

Stosuje się zestaw każdemu członkowi innego zestawu, a następnie łączy wynikowe zestawy za.Można również ta funkcja zwraca ciąg są połączone, utworzony przez oceny wyrażenie tekstowego dla zestaw.

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óra zwraca zestaw.

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

  • String_Expression
    Wyrażenie prawidłowy ciąg, które jest zwykle nazwę bieżący element członkowski każdej spójna kolekcja w określonej (CurrentMember.Name) zestaw.

  • Delimiter
    Ogranicznik prawidłowe wyrażona jako wyrażenie tekstowe.

Remarks

Jeżeli określono drugi zestaw, Generate funkcja zwraca zestaw generowane przez zastosowanie do każdego spójna kolekcja w pierwszym zestawie krotek w drugim zestawie, a następnie sprzęgnięcia zestawy wynikowe za. Jeśli ALL jest określony, to funkcja zachowuje duplikaty w wynikowym zestaw.

Jeżeli określono wyrażenie tekstowe, Generate funkcja zwraca wygenerowany przez wylicza wyrażenia określonego ciąg znaków przed każdym spójna kolekcja w pierwszym ciąg zestaw, a następnie łączenia wyniki. Opcjonalnie ciąg znaków można ograniczać, oddzielając wynik w ciągu wynikowego są połączone.

Przykłady

Zestaw

W poniższym przykładzie kwerenda zwraca zestaw zawierający wartość miara Internet Sales cztery razy, ponieważ istnieją cztery elementy członkowskie w zestawie [Data]. [Kalendarz rok]. [Kalendarz rok] .MEMBERS:

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

Usuwanie wszystko zmienia kwerendę, 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]

Najbardziej powszechnym zastosowaniem praktyczne Generate do analizowania skomplikowanych ustawiono wyrażenie, takie jak TopCount, za pośrednictwem zestaw elementów członkowskich. Następująca kwerenda przykładzie wyświetla górne 10 produktów dla każdego roku kalendarza 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]

Należy zwrócić uwagę, że różne 10 najlepszych są wyświetlane dla każdego roku, a korzystanie z Generate jest to jedyny sposób, w celu uzyskania tego wyniku. Po prostu crossjoining lat w kalendarzu oraz zestaw górne 10 produktów zostaną wyświetlone górne 10 produktów dla wszystkich czas powtarzany dla każdego roku, jak pokazano w poniższym 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

W poniższym przykładzie pokazano 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]

Uwaga

Ta forma Generate funkcja może być przydatne podczas debugowania obliczenia, ponieważ umożliwia ona zwracać ciąg wyświetlania nazw wszystkich elementów członkowskich zestaw. Może to być bardziej czytelny niż ścisłe odwzorowanie MDX zestaw, SetToStr (MDX) funkcja zwraca wartość.