inlunarweek - script- en grafiekfunctie
Deze functie geeft waar als resulaat als timestamp binnen de maanweek valt die base_date bevat. Maanweken in QlikView worden gedefinieerd door 1 januari als eerste dag van de week te nemen.
Syntaxis:
InLunarWeek (timestamp, base_date, period_no[, first_week_day])
Retourgegevenstype: Booleaanse waarde
Argumenten:
Argument | Beschrijving |
---|---|
timestamp | De datum die u wilt vergelijken met base_date. |
base_date | Datum op basis waarvan de maanweek wordt geëvalueerd. |
period_no | De maanweek kan worden verschoven met period_no. period_no is een geheel getal, waarbij de waarde 0 de maanweek aangeeft die base_date bevat. Negatieve waarden in period_no geven voorafgaande maanweken aan en positieve waarden geven volgende maanweken aan. |
first_week_day | Een verschuiving kan groter of kleiner zijn dan nul. Hiermee wordt het begin van het jaar gewijzigd met het opgegeven aantal dagen en/of fracties van een dag. |
Voorbeeld 1:
inlunarweek('12/01/2013', '14/01/2013', 0)
Retourneert True. Omdat de waarde van timestamp, 12/01/2013 valt in de week van 08/01/2013 tot 14/01/2013.
Voorbeeld 2:
inlunarweek('12/01/2013', '07/01/2013', 0)
Retourneert False. Omdat de base_date 07/01/2013 in de maanweek valt die is gedefinieerd als van 01/01/2013 t/m 07/01/2013.
Voorbeeld 3:
inlunarweek('12/01/2013', '14/01/2013', -1)
Retourneert False. Omdat het opgeven van een waarde van period_no als -1 de week naar de vorige week verschuift, van 01/01/2013 naar 07/01/2013.
Voorbeeld 4:
inlunarweek('07/01/2013', '14/01/2013', -1)
Retourneert True. In vergelijking met het voorafgaande voorbeeld ligt de tijdstempel in de week daarna als wordt rekening gehouden met de terugwaartse verschuiving.
Voorbeeld 5:
inlunarweek('11/01/2006', '08/01/2006', 0, 3)
Retourneert False. Omdat het opgeven van een waarde van 3 voor first_week_day betekent dat de start van het jaar wordt berekend vanaf 04/01/2013, zodat de waarde van base_date in de eerste week valt en de waarde van timestamp in de week van 11/01/2013 t/m 17/01/2013.
Voorbeeld 6:
Voeg het voorbeeldscript toe aan uw document en voer dit uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in uw document toe om het resultaat te bekijken.
Met dit voorbeeld wordt gecontroleerd of een factuurdatum in de week valt die met vier weken is verschoven vanaf de waarde van base_date.
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
InLunarWeek(InvDate, '11/01/2013', 4) AS InLWeekPlus4
Resident TempTable;
Drop table TempTable;
De resulterende tabel bevat de oorspronkelijke datums en een kolom met de retourwaarde van de functie inlunarweek().
De functie retourneert True voor de waarde van InvDate5/2/2013 omdat de waarde van base_date, 11/01/2013, met vier weken is verschoven en dus in de week van 5/02/2013 t/m 11/02/2013 valt.
InvDate | InLWeekPlus4 |
---|---|
28/03/2012 | 0 (False) |
10/12/2012 | 0 (False) |
5/2/2013 | -1 (True) |
31/3/2013 | 0 (False) |
19/5/2013 | 0 (False) |
15/9/2013 | 0 (False) |
11/12/2013 | 0 (False) |
2/3/2014 | 0 (False) |
14/5/2014 | 0 (False) |
13/6/2014 | 0 (False) |
7/7/2014 | 0 (False) |
4/8/2014 | 0 (False) |