如何在QlikView中获得两个aggr的aggr?

时间:2013-03-05 16:02:36

标签: reporting business-intelligence qlikview

如果我想从一个成员ID聚合的两个州找到一列的最大值,这应该有用吗?

=Aggr(
    MaxString(
        Aggr(NODISTINCT MinString({[State1]}DATE_STRING),MBR_ID)
        +
        Aggr(NODISTINCT MinString({[State2]}DATE_STRING),MBR_ID)
) , MBR_ID) 

所以,如果我有这些数据:

MBR ID          DATE_STRING
1               20120101
1               20120102
1               20120103

State1选择了20120101,State2选择了20120103,我的表达式将为会员1返回20120103。

谢谢!

编辑:在SQL中,这看起来像:

WITH MinInfo (DATE_STRING, MBR_ID)
AS (SELECT MIN(DATE_STRING), MBR_ID FROM Table WHERE TYPE IN ('State1', 'State2') GROUP BY MBR_ID, TYPE)
SELECT MAX(DATE_STRING) DATE_STRING, MBR_ID FROM MinInfo GROUP BY MBR_ID

1 个答案:

答案 0 :(得分:0)

如果将您的目标转换为实际日期字段,那么实现目标会更容易 假设您使用的图表中MBR_ID是维度,如果您想要最大日期(最新日期),则可以执行以下操作:

=nummax(Max({[State1]}DATE_STRING),Max({[State2]}DATE_STRING))

要转换为日期,您可以使用此功能:

date#(DATE_STRING,'[text format of the date]')

(日期格式对我来说看起来像是YYYYMMDD,但如果它的日期是月份,你会使用YYYYDDMM)

我建议您在脚本中对其进行格式化,这样您每次需要使用该日期时都不必担心它。