2016-06-28 17 views
-1

У меня есть ряд дат, например .:QlikView: Найти следующую дату до выбранной даты

20160628 
20160627 
20160623 
20160620 

Если я выбираю конкретную дату, я хочу найти дату непосредственно перед этой датой ,

Например:

  • Если я выбираю 20160628, я получаю 20160627.
  • Если я выбираю 20160627, я получаю 20160623.
  • Если я выбираю 20160623, я получаю 20160620.

Есть ли способ сделать это в QlikView?

+0

Где вы хотите «получить» это? В текстовом объекте? – mickeger

+0

Самый простой способ сделать это в вашем сценарии загрузки и +1 к вашей дате! Это переместит все на один день. Однако все зависит от того, чего вы пытаетесь достичь, пытаетесь ли вы изменить указанную дату, выбрать дату в диаграмме? Перед получением ответа может потребоваться дополнительная информация. –

ответ

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; 

Трюк - это команда Предыдущая и тот факт, что мы заказываем таблицу myDate. Наконец, вы можете отказаться от UNIQUE_TABLE, он не будет нужен больше:

DROP TABLE UNIQUE_DATE; 

Вы будете в конечном итоге с полем MyDate (исходной) и myPrevDate, который содержит то, что (я думаю) вы ожидая.

Смежные вопросы