IntervalMatch (utökad syntax)

Det utökade IntervalMatch-prefixet används för att skapa en tabell där diskreta numeriska värden matchas till ett eller flera numeriska intervall, samt med värdena för en eller flera nycklar.

Detta är en mycket kraftfull och flexibel funktion som kan användas för att länka transaktioner med dimensioner som förändras över tid: långsamt föränderliga dimensioner.

Prefixet IntervalMatch måste placeras framför en Load- eller Select-sats som laddar intervallen. Tabellen som innehåller de diskreta datapunkterna och nycklarna måste redan ha laddats i QlikView. Det måste ha laddats före satsen med IntervalMatch-prefixet. Prefixet omvandlar den inlästa tabellen med intervall och nycklar till en tabell som innehåller ytterligare en kolumn: de diskreta numeriska datapunkterna. Det utvidgar dessutom antalet poster så att den nya tabellen får en post per möjlig kombination av diskret datapunkt, intervall och värdet på nyckelfältet (nyckelfälten).

Syntax:

intervalmatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )

matchfield är det fält som innehåller de diskreta numeriska värden som ska länkas till intervallen.

keyfield(s) är fält som innehåller attribut som ska matchas i omvandlingen.

loadstatement eller selectstatement måste resultera i en tabell, där de första två fälten innehåller varje intervalls undre och övre gräns. Det tredje och därefter följande fält innehåller keyfield(s) som ingår i IntervalMatch-satsen. Intervallen är alltid slutna, vilket innebär att start- och slutpunkterna alltid är inkluderade i intervallet. Om icke-numeriska gränser används, ignoreras intervallet (odefinerat).

För att undvika att odefinierade intervallsgränser ignoreras, kan NULL-värden behöva mappas till andra fält som utgör intervallets undre och övre gränser. Detta kan hanteras av NullAsValue-satsen eller ett explicit text som ersätter NULL-värden med ett numeriskt värde före eller efter någon av de diskreta numeriska datapunkterna.

Exempel:  

Inner Join IntervalMatch (Date,Key) LOAD FirstDate, LastDate, Key resident Key;