Qlikview - 日期之间的数据;根据所选日期过滤掉过去或未来数据

时间:2015-06-30 12:40:07

标签: charts qlikview

我已经看过文档有开始日期和结束日期"小部件"然而,当用户输入日期时,我正在寻找动态解决方案,例如在下表中,当我选择日期时,说" 1/1/2004",我只想要看到活跃的球员(这只会排除迈克尔乔丹)。

Jersey#Name RookieYr RetirementYr平均PPG 23 Michael Jordan 1/1/1984 1/1/2003 24 33 Scotty Pippen 1/1/1987 1/1/2008 15 1 Derrick Rose 1/1/2008 1/1/9999 16 25 Vince Carter 1/1/1998 1/1/9999 18

2 个答案:

答案 0 :(得分:1)

最灵活的方法是将InterokMatch将RookieYr * RetireYr日期纳入所有日期的表格中。有关完整示例,请参阅http://qlikviewcookbook.com/recipes/download-info/count-days-in-a-transaction-using-intervalmatch/

答案 1 :(得分:0)

这里是您的数据的时间间隔匹配。您可以随意创建日历。

STATS:
load * inline [
Jersey#, Name, RookieYr, RetirementYr, Average, PPG 
23, Michael Jordan, 1/1/1984, 1/1/2003, 24 
33, Scotty Pippen, 1/1/1987, 1/1/2008, 15 
1, Derrick Rose, 1/1/2008, 1/1/9999, 16 
25, Vince Carter, 1/1/1998, 1/1/9999, 18
];

let zDateMin=37000;
let zDateMax=40000;

DATES:
LOAD
    Date($(zDateMin) + IterNo() - 1) as [DATE],
    year( Date($(zDateMin) + IterNo() - 1)) as YEAR,
    month( Date($(zDateMin) + IterNo() - 1)) as MONTH
AUTOGENERATE 1
WHILE $(zDateMin)+IterNo()-1<= $(zDateMax);

INTERVAL:   
IntervalMatch (DATE) load RookieYr, RetirementYr resident STATS;

left join (DATES) load * resident INTERVAL; drop table INTERVAL;

您需要加载2个表,其中一个包含开始日期和结束日期,另一个表格包含日历日期,然后您将时间间隔与日期字段匹配到开始和结束字段,并从那里开始工作最后一次加入只是为了整理一下。

所有这一切的结果就是这个ctrl-t。不要担心维持间隔匹配所需的Syn密钥。

Don't fear the SynKey

然后你就可以拥有这样的东西。

01/01/2004

Derrick Rose也被排除在外,因为他没有在1/1/2004开始