QlikView:查找当前所选日期之前的下一个日期

时间:2016-06-28 07:51:13

标签: qlikview

我有一系列日期,例如:

20160628
20160627
20160623
20160620

如果我选择特定日期,我想在该日期之前找到该日期。

例如:

  • 如果我选择20160628,我会收到20160627.
  • 如果我选择20160627,我会收到20160623。
  • 如果我选择20160623,我会收到20160620。

有没有办法在QlikView中执行此操作?

1 个答案:

答案 0 :(得分:0)

我希望您每个日期都有多行数据,因此我将使用此INLINE数据作为示例:

   BASETABLE:
   LOAD * INLINE [
       myDate,myType
       20160628,A
       20160628,B    
       20160627,C
       20160627,D
       20160627,E    
       20160623,F
       20160623,G
       20160623,H        
       20160620,I
       ];

现在我们首先创建一个非常愚蠢的临时表,其中包含所有可用的唯一日期:

    UNIQUE_DATE:
    LOAD Distinct myDate Resident BASETABLE order by myDate;

我们现在可以创建一个新表格,其中包含所有现有日期和相应的最后日期:

    PREVIOUS_DATE:
    LOAD myDate, Previous(myDate) as myPrevDate Resident UNIQUE_DATE order by myDate;

诀窍是命令Previous和我们通过myDate命令表的事实。最后你可以放弃UNIQUE_TABLE,它不再需要它了:

    DROP TABLE UNIQUE_DATE;

你最终会得到myDate字段(原始字段)和myPrevDate字段,其中包含您期望的内容(我认为)。