Pentaho Report Designer (PRD): Verwenden Sie den Parameter in der Select-Klausel

In dem Bericht, mit dem ich arbeite, muss ich Informationen zu vier Spalten einer databasetabelle anzeigen. Die ersten drei Spalten der Tabelle sind SEX, AGE und NAME. Die anderen N Spalten (N wie 100!) Sind Fragen, wobei jede Zeile der Tabelle die Antwort der Person auf diese Frage bedeutet:

SEX | AGE | NAME | Q1 | Q2 | Q3 | ... | Q100 

In meinem Bericht muss ich vier dieser Spalten anzeigen, wobei die ersten drei immer gleich sind und die vierte Spalte je nach der vom Benutzer ausgewählten Option variiert:

 SEX | AGE | NAME | <QUESTION_COLUMN> 

Bisher habe ich einen Dropdown-Parameter erstellt (gefüllt mit "Q1", "Q2", "Q3", usw.), wo der Benutzer die Frage auswählen kann, die er vergleichen möchte. Ich habe versucht, den Wert der ausgewählten Option (z. B. "Q1") in der SELECT-Klausel meiner Berichtsabfrage ohne Erfolg zu verwenden:

 SELECT sex, age, name, ${QUESTION} FROM user_answers 

Pentaho Report Designer zeigt dabei keine Fehler an, es zeigt einfach keine Werte für die Frage- Spalte (die anderen Spalten – Geschlecht, Alter und Name – geben immer ihre Werte zurück)

Also, ich möchte es wissen:

  1. Darf ich das machen? Ich meine, verwenden Sie Parameter in der SELECT-Klausel?
  2. Gibt es eine andere Möglichkeit, diese "Wildcard" Spalte nach einem Parameter zu haben?

Danke im Voraus! Bruno Gama

Solutions Collecting From Web of "Pentaho Report Designer (PRD): Verwenden Sie den Parameter in der Select-Klausel"

Sie können den Pentaho-Berichtentwurf verwenden, um zu entcasting.

  1. Zuerst müssen Sie den Parameter "FRAGE" auf die SELECT question FROM user_ansewers order by XXXX zB: SELECT question FROM user_ansewers order by XXXX
  2. Sie können die SQL verwenden

    SELECT sex, age, name,question FROM user_answers where question= ${QUESTION}

  3. Zuletzt können Sie das "Drop-Down" sehen, um die Auswahl zu realisieren

Ich benutze SQL server als database. Dieses Problem triggers sich so:

execute ('SELECT Geschlecht, Alter, Name,' + $ {FRAGE} + 'als Q1 FROM user_answers')

Bitte beachten Sie, dass $ {QUESTION} ein Spaltenname von user_answers sein muss. In diesem Beispiel habe ich einen Textfeld-Parameternamen FRAGE verwendet, wobei der Spaltenname als Eingabe angegeben ist. Möglicherweise benötigen Sie eine andere Codierung, wenn der Eingabeparameter kein Textfeld ist.