2016-05-14 12 views
0

Ich versuche, eine MDX-Abfrage zu schreiben, die alle meine Produkte und die Untergruppen (hierarchy parent) anzeigen würde, denen sie angehören. Während die Aufgabe eher trivial erscheint, kann ich es immer noch nicht herausfinden. Hier ist meine MDX-Abfrage.MDXQuery - Currentmember mit seinem Elternteil

select 
    { 
    [Products].[Hierarchy].currentmember.parent 
    } 
on 0, 
    { 
    [Products].[Hierarchy].[Product].members 
    } 
on 1 
from [CUBE] 

Ich habe auch versucht

select 
    { 
Ancestor([Products].[Hierarchy].currentmember, 
     [Products].[Hierarchy].[Subgroup]) 
    } 
on 0, 
    { 
    [Products].[Hierarchy].[Product].members 
    } 
on 1 
from [CUBE]; 

Aber alles, was ich von ihm bekommen, ist eine graue Liste von Produkten ohne tatsächliche Spalte. Jede Hilfe/Tipps würde sehr geschätzt werden.

+0

diese aussehen wie sie würden Fehler? ein Fehler im Sinne von "diese Hierarchie bereits auf der 0-Achse verwenden" – whytheq

Antwort

1

Wenn Sie die gleiche Hierarchie verwenden möchten, können Sie sie nur auf einer Achse verwenden - es gibt 3 Achsen im Kontext - ON COLUMNS/ON ROWS/WHERE.

Also [Products].[Hierarchy].ON COLUMNS setzen und auch ON ROWS würde eine Ausnahme auslösen.

Was können Sie tun, ist ein Teil der Logik in eine WITH Klausel bewegen und die Erzählung in die Measures Dimension bewegen:

WITH 
MEMBER [Measures].[ProdName] AS 
    Ancestor(
    [Products].[Hierarchy].currentmember, 
    [Products].[Hierarchy].[Subgroup] 
).MEMBER_CAPTION 
SELECT 
    [Measures].[ProdName] ON 0, 
    [Products].[Hierarchy].[Product].MEMBERS ON 1 
FROM [CUBE]; 

Sie könnten Nutzung Ihrer Attributhierarchien und tun so etwas wie dies machen:

SELECT 
    {} ON 0, 
    [Products].[Product].[Product] 
*[Products].[Subgroup].[Subgroup] 
    ON 1 
FROM [CUBE]; 
+0

Danke, das ist genau das, was ich brauchte! Was die zweite Option angeht, habe ich tatsächlich etwas iden- tifiziert, das mit "null" in den Spalten identisch ist und Crossjoin auswählt, und es hat funktioniert, aber irgendwie dachte ich, es wäre ein billiger Ausweg. Was den ersten Code betrifft, so funktioniert es genau so, wie ich es wollte, und ich dachte über etwas Ähnliches nach. Also verwendete der Schlüssel die Eigenschaft MEMBER_CAPTION. Ich werde mehr dazu lesen. – some

+0

Dies sollte alle Eigenschaften auflisten, die verwendet werden können: https://msdn.microsoft.com/en-us/library/ms145528.aspx?f=255&MSPPError=-2147217396 @ – whytheq

+0

@some Wenn Sie mdx mögen dann würde ich vorschlagen Dieses Tool 'MDXStudio' ist besser als SSMS: https://www.sqlbi.com/tools/mdx-studio/ – whytheq

Verwandte Themen