2016-03-30 9 views
1

Ich habe ein MDX-Skript, das ich aus dem Browser genommen, aber ein wenig bearbeitet und ein Skript in Berechnungen erstellt, aber es ist falsch?Mdx Fehler beim Erstellen eines berechneten Skript-Members

WITH MEMBER [Measures].[RTY] 
AS 
'SELECT NON EMPTY { [Measures].[Person ID Count] } ON COLUMNS 
FROM (SELECT ({ [Order Date Time Base].[Month Number Of Year].&[1], [Order Date Time Base].[Month Number Of Year].&[2], [Order Date Time Base].[Month Number Of Year].&[3] }) ON COLUMNS 
FROM (SELECT ({ [Order Date Time Base].[Calendar Year].&[2015] }) ON COLUMNS 
FROM [Scv Cube])) WHERE ([Order Date Time Base].[Calendar Year].&[2015], [Order Date Time Base].[Month Number Of Year].CurrentMember)' 
SELECT 
{[Measures].[Person ID Count]} ON COLUMNS 
FROM [Scv Cube] 

Was ist falsch daran? Ich bin sehr neu

Antwort

1

SELECT mdx nicht

in der WITH Klausel erlaubt ist

Sieht aus wie Sie eine Unter haben wählen - dies geht in der FROM Klausel. Ich habe die Currentmember in der Nähe des Ende des Scripts ist, wie ich unsicher bin, was passiert, wenn diese in einer WHERE Klausel enthalten ist

SELECT 
    {[Measures].[Person ID Count]} ON COLUMNS 
FROM 
(
    SELECT 
    NON EMPTY { [Measures].[Person ID Count] } ON COLUMNS 
    FROM 
    ( 
    SELECT 
     ( 
     { 
      [Order Date Time Base].[Month Number Of Year].&[1] 
     , [Order Date Time Base].[Month Number Of Year].&[2] 
     , [Order Date Time Base].[Month Number Of Year].&[3] 
     } 
     ) ON COLUMNS 
    FROM 
     ( 
     SELECT 
      ({ [Order Date Time Base].[Calendar Year].&[2015] }) ON COLUMNS 
     FROM [Scv Cube] 
     ) 
    ) 
    WHERE 
    ( 
     [Order Date Time Base].[Calendar Year].&[2015] 
    //, [Order Date Time Base].[Month Number Of Year].CurrentMember 
    ) 
); 

Was ist das Endziel dieses Skript? Wollen Sie nur die Summe für [Person ID Count] in den ersten drei Monaten des Jahres 2015? Wenn dies der Fall soll dies helfen ...

SELECT 
    NON EMPTY { [Measures].[Person ID Count] } ON COLUMNS 
FROM [Scv Cube] 
WHERE 
( 
    [Order Date Time Base].[Calendar Year].&[2015], 
    { 
     [Order Date Time Base].[Month Number Of Year].&[1] 
    , [Order Date Time Base].[Month Number Of Year].&[2] 
    , [Order Date Time Base].[Month Number Of Year].&[3] 
    } 
); 
+0

Ich versuche, dass die select-Anweisung in dem neuen Skript-Befehl zu verwenden, aber es wirft den Fehler: 'Parser: Das Skript die Anweisung enthält, die allowed' nicht, wenn ich versuche um es zu bearbeiten – Faiz

+0

hey, ich versuche etwas anderes statt, nicht sicher, ob das die richtige Sache zu tun ist, "COUNT (NONEMPTY ([Maßnahmen]. [Person ID Count], [Bestelldatum Zeitbasis]. [Kalenderjahr]. & [2016])) "Also, was ich davon will, ist die Anzahl der PersonID nur für das Jahr 2016. – Faiz

+0

das ist falsch 'NONEMPTY ([Maßnahmen]. [Person ID Count] ...' das erste Argument von NonEmpty ist eine Menge - aber Sie haben eine Maßnahme verwendet (die immer gleich 1 ist) – whytheq