Question

Je veux créer un barchart avec une barre pour chaque mois et une certaine mesure.

Mais je veux aussi filtre sur une plage de la journée, qui ne peut pas totalement se chevauchent certains mois.

Quand cela arrive, je voudrais que le nombre global de ces mois seulement aggregat dans les jours qui tombent dans ma plage de dates de ne pas obtenir le total pour l'ensemble du mois.

Est-ce possible avec le MDX et si c'est la façon dont la demande doit ressembler?

Était-ce utile?

La solution

Créez une deuxième dimension temporelle, en utilisant une dimension virtuelle de la dimension d'origine.Utilisez une dimension dans l'endroit où et un autre dans la sélection.

Cela se produit souvent de toute façon si certaines personnes veulent «temps d'affaires» de quarts et de périodes, et d'autres préfèrent des mois.Ou si vous avez une année financière qui gère avril-avril.

Autres conseils

Vous pouvez utiliser des sous-sélection.Vous pouvez trouver plus d'informations sur ce page et ce page:

Lorsqu'un membre est spécifié dans la clause d'axe alors que le membre avec ses ascendants et descendants sont inclus dans le sous-cube de l'espace pour celle-ci;tous les membres frères non mentionnés, dans l'axe ou clause de segment, et leurs descendants sont filtrées à partir du sous-espace.De cette façon, l'espace de la sélection externe a été limitée à la les membres existants dans l'axe de la clause ou la clause de segment, avec leurs ascendants et descendants comme mentionné avant.

Voici un exemple:

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]
        )

Le résultat contiendra une ligne pour Autralia et un autre pour les United States.Avec celle-ci, j'ai limité la valeur de United Stated à l' Washington état.

Une façon dont j'ai trouvé de le faire avec Mondrian est comme suit

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]

Je ne sais pas si le filtrage sera effectué en SQL comme ci-dessous et donner une bonne performance ou être exécuté localement

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top