Dual - skript- och diagramfunktion
Dual() kombinerar ett tal och en sträng till en enda post, så att talrepresentationen av posten kan användas för sortering och beräkning, samtidigt som strängvärdet kan användas för visning
Syntax:
Dual(text, number)
Returnerad datatyp: dual
Argument:
Argument | Beskrivning |
---|---|
text | Strängvärdet som ska användas i kombination med talargumentet. |
number | Talet som ska användas i kombination med strängen i strängargumentet. |
I QlikView är alla fältvärden potentiellt duala värden. Detta innebär att fältvärdena både kan ha ett numeriskt värde och ett textvärde. Exempelvis kan ett datum ha det numeriska värdet 40908 och textrepresentationen '2011-12-31'.
När flera dataelement som läses in i ett fält har olika textsträngar men samma numeriska värde, kommer de alla att dela den första textsträngen.
Exempel 1:
Lägg till följande exempel i skriptet och kör det.
Load dual ( NameDay,NumDay ) as DayOfWeek inline
[ NameDay,NumDay
Monday,0
Tuesday,1
Wednesday,2
Thursday,3
Friday,4
Saturday,5
Sunday,6 ];
Fältet DayOfWeek kan användas i ett diagram, som en dimension till exempel. I en tabell med veckodagar sorteras de automatiskt i rätt nummerordning i stället för i alfabetisk ordning.
Exempel 2:
Load Dual('Q' & Ceil(Month(Now())/3), Ceil(Month(Now())/3)) as Quarter AutoGenerate 1;
Det här exemplet letar rätt på aktuellt kvartal. Det visas som Q1 när funktionen Now() körs under de första tre månaderna under året, Q2 för följande tre månader och så vidare. Om du använder sortering kommer dock fältet Quarter att fungera som sitt numeriska värde: 1 till 4.
Exempel 3:
Dual('Q' & Ceil(Month(Date)/3), Ceil(Month(Date)/3)) as Quarter
Som i tidigare exempel skapas fältet Quarter med textvärdena 'Q1' till 'Q4', och tilldelas de numeriska värdena 1 till 4. För att kunna använda detta i skriptet måste värdena för Date laddas.
Exempel 4:
Dual(WeekYear(Date) & '-W' & Week(Date), WeekStart(Date)) as YearWeek
Det här exemplet skapar ett fält YearWeek med textvärden i formen '2012-W22' och tilldelar samtidigt ett numeriskt värde som motsvarar datumnumret för veckans första dag, exempelvis: 41057. För att kunna använda detta i skriptet måste värdena för Date laddas.