2016-04-06 19 views
0

Ich habe einige Fragen zu MDX-Escape-Zeichen gesehen, aber sie konzentrieren sich auf eine Abfrage, die einen Wert angegeben hat. Ich habe eine dynamische mdx, mit Werten, die vom Benutzer angegeben werden. Dies ist der MDX:MDX-Escapezeichen CDE Pentaho

SELECT 
    NON EMPTY {Hierarchize({[Measures].[INDICADOR]})} ON COLUMNS, 
    NON EMPTY {Hierarchize({[NOW].[NOW].Members})} ON ROWS 
    FROM [UNION_NOW] 
    WHERE CrossJoin({[PARENT].[${parentParameter}]} 

die Wild Card auf meinem Wähler basiert:

SELECT 
    NON EMPTY {Hierarchize({[NOW].[NOW].Members})} ON COLUMNS, 
    NON EMPTY {Hierarchize({[PARENT].[PARENT].Members})} ON ROWS 
    FROM [UNION_NOW] 

Wie bewerbe ich den "Escape-Wert" in diesem Fall?

+0

Warum gibt es in der 'WHERE'-Klausel des ersten Skripts einen' crossjoin'? 'WHERE CrossJoin ({[PARENT]. [$ {ParentParameter}]}' – whytheq

+0

dass MDX vom SAIKU Wizard erstellt wurde, bin ich mir nicht sicher, warum es einen Crossjoin gibt, ich versuche immer noch das Tool zu verstehen –

Antwort

0

Die beste Lösung ist die Verwendung der PRE/POST-Ausführungsereignisse der Auswahlkomponente, je nachdem, welche CDE-Komponenten Sie verwenden.

Für ähnliche Situation

  • verwenden ich eine Auswahlkomponente, die Daten aus einer SQL-Abfrage
  • Basierend auf Benutzerauswahl wurde bringen, I den pre Ausführungsfall Abfragekomponente verwendet, um eine WHERE-Klausel zu erzeugen und einzustellen Diese Where-Klausel in einer "einfachen Parameter" -Komponente
  • und schließlich in der MDX-Abfrage verwendet diesen einfachen Parameter, um die dynamische Where-Klausel beizutreten.

Sie können auch die nach der Ausführung von ausgewählten Komponente verwenden, um eine dynamische zu generieren where-Klausel und setzen Sie ihn in einen Parameter, und verwenden Sie dann die Parameter in der MDX/SQL-Abfrage

Hoffe, es hilft.

+0

Hi Danke fürs Beantworten –

+0

Hallo, danke für die Antwort Ich versuche immer noch, das Tool zu verstehen, während ich es benutze Ich habe bereits eine Auswahlkomponente mit einem einfachen Parameter erstellt, aus dem $ {parentParameter} kommt Lassen Sie mich besser erklären, was los ist, meine erste MDX ist für ein Diagramm, und die zweite für einen Selektor. Wenn der Benutzer einen Wert mit dem Sonderzeichen "[]" wählt, erhält das Diagramm einen Fehler seit dem " [] "ist ein Teil der MDX-Syntax. Ich muss die" [] "vor der Ausführung des Diagramms verlassen. Kann th th in Bedingung auf der Query-Komponente, die Sie erwähnten? Und wenn ja, haben Sie ein Beispiel? –

+0

Okay, ich habe kein Beispiel dafür. aber das ist genau die Art von Dingen, die ich durchgemacht habe. Versuchen Sie dies und ich werde versuchen, genauer zu sein - Erstellen Sie einen neuen Parameter in Ihrem Bericht rufen Sie es param_chart und lassen Sie Ihr Diagramm für diesen Parameter anstelle Ihres elterlichenParemeter ausgeführt - Gehe zu Ihrer ausgewählten Komponente, zu den erweiterten Eigenschaften, gehe zur Post-Ausführung und schreiben Sie das Skript als Funktion fn() { myvalue = $ ("parentParameter"). val(); myvalue = myvalue.replace ("[", ""). Replace ("]", ""); $ ("param_chart"). Val (meinwert); } – user18620