В качестве альтернативы отвечу Стефана Qlik Sense обладает отличными функциями, когда дело доходит до дат. Ниже вы можете подключиться к вашему скрипту и создать дополнительные поля на экране селектора, который можно использовать.
![CurrencyDatePicker](https://i.stack.imgur.com/445pL.png)
//AutoCalendar
[Calendar]:
DECLARE FIELD DEFINITION Tagged ('$date')
FIELDS
Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year')
,Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter')
,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$axis', '$yearquarter')
,Month($1) AS [Month] Tagged ('$month')
,Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth')
,Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber')
,Date(Floor($1)) AS [Date] Tagged ('$date')
/*User added date components*/
,Dual(Year($1), if(Year($1)=Year(today()),YearStart($1),null)) AS [ThisYear] Tagged ('$axis', '$thisyear')
,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)), if(Year($1)=Year(today()),QuarterStart($1),null))
AS [ThisYearQuarter] Tagged ('$axis', '$thisyearquarter')
,Dual(Year($1)&'-'&Month($1)
, if(Year($1)=Year(today()), monthstart($1),null)) AS [ThisYearMonth] Tagged ('$axis', '$thisyearmonth')
,Dual(Year($1), if(Year($1)=(Year(today())-1),YearStart($1),null)) AS [LastYear] Tagged ('$axis', '$lastyear')
,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3))
, if(Year($1)=(Year(today())-1),QuarterStart($1),null)) AS [LastYearQuarter] Tagged ('$axis', '$lastyearquarter')
,Dual(Year($1)&'-'&Month($1)
, if(Year($1)=(Year(today())-1), monthstart($1),null)) AS [LastYearMonth] Tagged ('$axis', '$lastyearmonth')
,Dual(date(MonthStart($1),'MMM-YYYY')
, if(Monthstart($1)=Monthstart(today()),Monthstart($1),null)) AS [ThisMonth] Tagged ('$axis', '$thismonth')
,Dual(date(MonthStart($1),'MMM-YYYY')
, if(Monthstart($1)=Monthstart(addmonths(today(),-1)),Monthstart($1),null))
AS [LastMonth] Tagged ('$axis', '$lastmonth')
,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3))
,if(QuarterStart($1)=QuarterStart(Today()),QuarterStart($1),null))
AS [ThisQuarter] Tagged ('$axis', '$thisquarter')
,Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3))
,if(QuarterStart($1)=QuarterStart(addmonths(Today(),-3)),QuarterStart($1),null))
AS [LastQuarter] Tagged ('$axis', '$lastquarter')
,Dual(date(MonthStart($1),'MMM-YYYY')
,if(QuarterStart($1)=QuarterStart(Today()),MonthStart($1),null)) AS [ThisQuarterMonth] Tagged ('$axis', '$thisquartermonths');
DERIVE FIELDS FROM FIELDS [CurrencyDate]
USING [Calendar] ;
Это будет использовать то же выражение, Стефан.
= count({< Flag = {1} >} distinct Customer)
на благо делать это таким образом
- поля скрыты в выпадающем списке, так что не загромождать поле Selecter
- нескольких дат могут быть обработаны в одном стеке, просто добавить к
derive from fields
, связанное с ,
Спасибо Stefan! Я просматриваю результаты и обновляю поток как можно скорее. – Suresh
Стефан - конечные результаты кажутся неправильными и не соответствуют требуемой логике. Если вы посмотрите на Неделю 41, должно быть 3 разных счета, так как в них также включена Неделя 40. – Suresh
Извините, мой плохой. 'Week (Date - 7) as Week' должна быть' Week (Date + 7) как Week' ('+' вместо '-'). Я обновлю ответ –