Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 2
  • 84
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 2

Nazwane zestawy domyślnie tworzone są jako statyczne, co oznacza, że ich konstrukcja odbywa się podczas przetwarzania kostki i jest stała do momentu kolejnego przetwarzania. Konsekwencją  jest brak możliwości kontekstowego wykorzystania takiego zestawu w zapytaniach mdx wykorzystujących oś przecięcia.

Rozważmy następujący przykład:

 

CREATE SET InternetSalesCountries 
AS
NonEmpty(
[Customer].[Geography].[Country].Members,
[Measures].[Internet Sales Amount]);

 

Definiowany przez instrukcję CREATE SET zestaw zostanie utworzony ze wszystkich składowych poziomu [Country] posiadających wartość na przecięciu z miarą [Internet Sales Amount]. Ponieważ statyczny zestaw nie zmienia się wraz z zastosowaniem przecięcia, poniższe przykłady zwrócą identyczny zestaw elementów poziomu [Country]:

 

//sprzedaż internetowa rok 2012
SELECT [Measures].[Internet Sales Extended Amount] 
ON COLUMNS,
InternetSalesCountries ON ROWS
FROM [Sales]
WHERE
([Date].[Calendar].[Calendar Year].&[2012])

//sprzedaż internetowa rok 2013
SELECT [Measures].[Internet Sales Extended Amount] 
ON COLUMNS,
InternetSalesCountries ON ROWS
FROM [Sales]
WHERE
([Date].[Calendar].[Calendar Year].&[2013])

 

Aby wyświetlić jedynie te kraje z których pochodzili klienci w roku 2012 i odpowiednio 2013, należy utworzyć zestaw dynamiczny:

 

CREATE DYNAMIC SET InternetSalesCountries 
AS
NonEmpty(
[Customer].[Geography].[Country].Members,
[Measures].[Internet Sales Amount]);

 

w takim przypadku poniższe zapytanie zwróci jedynie kraje klientów z roku 2012:

 

SELECT [Measures].[Internet Sales Extended Amount] 
ON COLUMNS,
InternetSalesCountries ON ROWS
FROM [Sales]
WHERE
([Date].[Calendar].[Calendar Year].&[2012])

 

Ponieważ zestaw dynamiczny uwzględnia oś przecięcia z klauzuli WHERE, ale nie uwzględnia pozostałych osi, kryteria dla dynamicznego zestawu powinny zostać umieszczone właśnie w klauzuli WHERE.

  • Odpowiedział
  • @ | 30.10.2014
  • TRENER ALTKOM AKADEMII