Domanda

Voglio creare un barChart con una barra per ogni mese e qualche misura.

Ma voglio anche filtrare su un intervallo di giorno che potrebbe non sovrapporsi completamente un po 'del mese.

Quando ciò accade vorrei che il conteggio aggregato per quei mesi sia solo aggregata nei giorni che rientrano nel mio intervallo di date non ottenere l'aggregato per tutto il mese.

è possibile con MDX e se è come dovrebbe essere la richiesta?

È stato utile?

Soluzione

Creare una seconda dimensione temporale, utilizzando una dimensione virtuale della dimensione originale.Utilizzare una dimensione nel dove e nell'altro nella selezione.

Questo accade spesso comunque se alcune persone vogliono "tempo lavorativo" di alloggi e periodi, e altri preferiscono mesi.O se hai un anno finanziario che funziona ad aprile-aprile.

Altri suggerimenti

Puoi usare la sottoselezione. Puoi trovare maggiori informazioni su questo Pagina e questo Pagina :

.

Quando un membro è specificato nella clausola AXIS quindi quel membro con I suoi ascendenti e discendenti sono inclusi nello spazio del sub Cube la sottolenco; Tutti i membri del fratello non menzionati, nell'asse o La clausola di affettatrice e i loro discendenti vengono filtrati dal sottospazio. In questo modo, lo spazio della selezione esterno è stato limitato al Membri esistenti nella clausola AXIS o della clausola di affettatrice, con il loro Ascendenti e discendenti come menzionato prima.

Ecco un esempio:

SELECT { [Customer].[Customer Geography].[Country].&[Australia]
       , [Customer].[Customer Geography].[Country].&[United States]
       } ON 1
     ,  {[Measures].[Internet Sales Amount], [Measures].[Reseller Sales Amount]} ON 0
  FROM ( SELECT {[Customer].[Customer Geography].[Country].&[Australia]
                 , [Customer].[State-Province].&[WA]&[US]} ON 0
           FROM [Adventure Works]
        )
.

Il risultato conterrà una riga per Autralia e un altro per il United States. Con la sottoselezione, ho limitato il valore del United Stated allo stato Washington.

Un modo in cui ho trovato farlo con Mondrian è come segue

WITH MEMBER [Measures].[Units Shipped2] AS
SUM
(
 {
  exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
 },[Measures].[Units Shipped]
)
MEMBER [Measures].[Warehouse Sales2] AS
SUM
(
 {
  exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
 },[Measures].[Warehouse Sales]
)
SELECT 
{[Measures].[Units Shipped2],[Measures].[Warehouse Sales2]} ON 0,
NON EMPTY [Store].[Store Country].Members on 1
FROM [Warehouse]
.

Non sono sicuro se il filtraggio verrà eseguito in SQL come sotto e dare buone prestazioni o eseguire localmente

select Country, sum(unit_shipped)
where state in ('WA','OR' )
group by Country 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top