2011-06-01 4 views
1

Existe-t-il un moyen plus court de spécifier un ensemble dans MDX?Un moyen plus court de spécifier un ensemble dans MDX

Je sais que je peux faire quelque chose comme:

{[Debtor].[TRADING DEBTOR CODE].&[AU-000013],[Debtor].[TRADING DEBTOR CODE].&[AU-000020]} 

, mais une fois que vous obtenez plus de quelques membres, il devient incroyablement bavard.

Je cherche quelque chose comme

MagicFunctionToMakeASet([Debtor].[TRADING DEBTOR CODE],'AU-000013,AU-000015,AU-000013,AU-000015,...') 
+0

Je ne pense pas. – ic3

+0

Si vous répondez, je l'accepterai car je pense que c'est vrai. – WOPR

Répondre

1

Sont-ils dans l'ordre du tout? Si oui, pourriez-vous faire

{ 
     [Debtor].[TRADING DEBTOR CODE].&[AU-000013] : 
     [Debtor].[TRADING DEBTOR CODE].&[AU-000020] 
} 

Pour vous donner un ensemble de codes 13 mais à 20 inclusivement? A défaut, jetez un coup d'œil à InStr et voyez si cela peut vous aider, il semblerait que vous pourriez - Ou vous pourriez créer des sous-ensembles à l'aide de celui-ci et ensuite combiner dans votre jeu final?

http://msdn.microsoft.com/en-us/library/ms145487.aspx

De ce qui précède MSDN:

WITH SET [ChardonnayChablis] AS 
    'Filter([Product].Members, (InStr(1, [Product].CurrentMember.Name, "chardonnay") <> 0) OR (InStr(1, [Product].CurrentMember.Name, "chablis") <> 0))' 

SELECT 
    [ChardonnayChablis] ON COLUMNS, 
    {Measures.[Unit Sales]} ON ROWS 
FROM Sales 
0

Il existe plusieurs raccourcis. Si vous voulez juste tous les 'enfants' d'un certain membre, utilisez Descendants() ou .children. Ou obtenez tous les membres à un niveau avec .members. Vous pouvez spécifier une plage entre deux membres ou utiliser un filtre pour faire correspondre une sorte de critère.

Qu'étiez-vous après? Je vais essayer de donner un exemple plus précis ...

Questions connexes