Dual - Skript- und Diagrammfunktion
Dual() kombiniert eine Zahl und einen String in einem einzelnen Datensatz, sodass die Zahlendarstellung des Datensatzes zur Sortierung und Berechnung verwendet und der Stringwert zu Darstellungszwecken genutzt werden kann.
Syntax:
Dual(text, number)
Rückgabe Datentyp: dual
Argumente:
Argument | Beschreibung |
---|---|
text | Der Stringwert, der in Verbindung mit dem Zahlenargument verwendet werden soll. |
number | Die Zahl, die in Verbindung mit dem String im Stringargument verwendet werden soll. |
In QlikView sind alle Feldwerte potenziell duale Werte. Die Feldwerte können demnach sowohl einen numerischen als auch einen Textwert haben. Z. B. kann ein Datum einen numerischen Wert von 40908 und den Textwert von '2011-12-31' haben.
Wenn alle Werte dieselbe Zahlendarstellung, aber unterschiedliche Stringdarstellungen haben, nehmen alle die Stringdarstellung des ersten dieser Werte an.
Beispiel 1:
Fügen Sie Ihrem Skript die folgenden Beispiele hinzu und führen Sie es aus.
Load dual ( NameDay,NumDay ) as DayOfWeek inline
[ NameDay,NumDay
Monday,0
Tuesday,1
Wednesday,2
Thursday,3
Friday,4
Saturday,5
Sunday,6 ];
Das Feld DayOfWeek kann in einem Diagramm verwendet werden, zum Beispiel als Dimension. In einer Tabelle werden die Wochentage automatisch in der richtigen numerischen anstatt der alphabetischen Reihenfolge sortiert.
Beispiel 2:
Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;
Dieses Beispiel liefert das aktuelle Quartal. Es wird als Q1 angezeigt, wenn die Funktion Now() in den ersten drei Monaten des Jahres ausgeführt wird, als Q2 für die zweiten drei Monate usw. Wenn es zur Sortierung verwendet wird, verhält sich das Feld Quarter wie ein numerischer Wert: 1 bis 4.
Beispiel 3:
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter
Wie im vorherigen Beispiel wird das Feld Quarter mit den Textwerten 'Q1' bis 'Q4' erstellt und erhält die numerischen Werte 1 bis 4. Damit dies im Skript verwendet werden kann, müssen die Werte für Date geladen werden.
Beispiel 4:
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek
Dieses Beispiel erstellt ein Feld YearWeek mit Textwerten in der Form '2012-W22' und weist gleichzeitig einen numerischen Wert zu, welcher der Datumszahl des ersten Wochentags entspricht, wie zum Beispiel: 41057. Damit dies im Skript verwendet werden kann, müssen die Werte für Date geladen werden.