1

我正在尝试使用 Qlik 集合分析和范围总和来计算在本月某个时间点处于活动状态的记录总数

例如,如果这些是记录:

id  state   created_date    modified_date
1   expired 01/12/2014  10/12/2014
2   expired 01/12/2014  10/03/2015
3   active  01/12/2014  01/12/2014
4   expired 10/01/2015  12/01/2015
5   expired 10/01/2015  11/03/2015
6   active  10/02/2015  10/02/2015
7   expired 10/03/2015  11/03/2015

预期的 o/p 是

Dec-14  3
Jan-15  4
Feb-15  4
Mar-15  5

例如:对于 2015 年 1 月,结果应该是 2014 年 12 月的 4 - 1 条活动记录 + 1 月创建的 2 条 + 12 月的 1 条实际于 2015 年 3 月到期的记录

记录过期时更新 modified_date

所以我尝试了这个:

rangesum(above(Count({$<[state] = {'active'} >} id), 0,12))
+ Count({1<[state] ={'expired'}, modified_date.Calendar.Month ={">=$(created_date.Calendar.Month)"}>} id) 

第二个计数语句是错误的。如何汇总当前不活跃但在本月某个时间点活跃的记录。是否可以在不使用主日历的情况下实现这一目标?

提前致谢!

4

1 回答 1

0

更好的方法是修改您的数据模型以包含如下所示的活动日期。

ActiveMonthsRaw:
Load ID
    ,date(monthstart(created_date),''MMM-YY) as ActiveMonthFormat
resident SourceTable
where state ='active';

ActiveMonthsRaw:
Load ID
    ,date(monthstart(modified_date),''MMM-YY) as ActiveMonthFormat
resident SourceTable
where state ='expired';

ActiveMonths:
Load distinct ID
    ,ActiveMonthFormat as ActiveMonth;

drop table ActiveMonthsRaw;

这将是按活动月份对 ID 进行不同计数的情况。看不到集合分析!

于 2016-05-19T08:22:57.397 回答