Qlikview汇总条件

时间:2013-09-16 06:20:48

标签: expression aggregate qlikview

我有一些数据如下 -

id, fn, ln, logdate
1, Rob, Hep, 01-04-2010
2, Rob, Hep, 09-04-2010
3, Rob, Hep, 10-10-2012
4, Rob, Hep, 01-12-2009
5, Peter, Cheng, 02-10-2010
6, bob, Pen, 05-10-2009
7, Peter, Cheng, 01-10-2009
8, Kim, Rany, 08-01-2010

我必须写一个表达式

  1. 按fn + ln。
  2. 对上述数据进行分组
  3. 从小组获取min(logdate)
  4. 的记录
  5. 对于上面的每个min logdate,如果日期高于'01 -01-2010',则查找计数
  6. 所以在这个例子中 -

      

    我应该算作一个人。 (Rob Hep的最小记录日期是01-12-2009和Peter Cheng的01-10-2009和bob Pen的是alos 05-10-2009所有这些都在01-01-2009之前)

    有人可以帮我写一下这个表达吗?

1 个答案:

答案 0 :(得分:3)

首先是加载脚本:

Table:
Load id,
      fn,
      ln,
      logdate,
      fn & ' ' & ln as name,
      num(Date#(logdate, 'DD-MM-YYYY')) as numdate inline [
   id, fn, ln, logdate
   1, Rob, Hep, 01-04-2010
   2, Rob, Hep, 09-04-2010
   3, Rob, Hep, 10-10-2012
   4, Rob, Hep, 01-12-2009
   5, Peter, Cheng, 02-10-2010
   6, bob, Pen, 05-10-2009
   7, Peter, Cheng, 01-10-2009
   8, Kim, Rany, 08-01-2010
];

我为名称添加了一个字段,为日期的数值添加了另一个字段。这使得集合表达式更容易(甚至可能?)。

然后我添加了一个变量     vNumdate = num(日期#('01-01-2010','DD-MM-YYYY')) 所以你可以在仪表板中编辑它。

在仪表板中,我有所有字段,文本字段包含 vNumdate 和 图(类型表)。

图表的维度是字段名称

公式是:

Min date
=min(numdate)

Count since 1.1.10
=Count({$<numdate = {">=$(vNumdate)"}>} numdate)

那就是中的简单仪表板:

Qlikview aggr with conditions

(希望我做对了。)