본문 바로가기

Qlik Sense 개발가이드

이전날짜의 데이터 생성 및 가져오기

Qlik Sense Script 에 대한 내용입니다. 

고객으로부터 다음과 같은 질문을 받았습니다. 

질문 : 날짜가 포함된 송장 테이블이 있습니다.

모든 날짜에 대한 기록이 없는 환율 테이블이 있습니다.

전일, 마지막 환율 기록을 어떻게 조회할 수 있습니까?

 

해결책

스크립트에서 누락된 환율을 계산할 수 있습니다.

한 가지 방법은 환율 표에서 누락된 데이터를 채우는 것입니다.

 

 다음의 스크립트를 데이터편집기에 추가하여 테스트하면 됩니다. 

 

// 테스트 데이터

Set DateFormat='YYYY-MM-DD';

 

InvoiceDate:

Load InvDate, InvDate as ExcDate inline [

InvDate

2022-01-01

2022-02-01

];

 

ExchangeRates:

Load * inline [

ExcDate,           Rate

2021-12-25, 95

2022-01-01, 100

2022-01-03, 105

2022-01-08, 103

2022-02-01, 108

];

 

// 환율의 최소 및 최대 날짜 설정

Let vMinExc = '2021-12-20';

Let vMaxExc = Date(Floor(MonthEnd(Today())));

 

// 최소에서 최대 사이의 모든 날짜로 테이블 만들기 (vMinExc vMaxExc)

Dates:

Load

Date('$(vMinExc)' + iterno()-1) as ExcDate

AutoGenerate 1

While Date('$(vMinExc)' + iterno()-1) <= '$(vMaxExc)';

 

// ExchangeRates Dates를 조인합니다. 이 단계 후에 ExchangeRate에는 최소 및 최대 사이의 모든 날짜가 있습니다.

Join (ExchangeRates)

Load ExcDate

Resident Dates;

 

// 날짜별로 ExchangeRates 테이블을 읽습니다. Rate null이면 이전 행의 Rate(PEEK)를 가져옵니다

Tmp:

NoConcatenate Load

ExcDate,

If(IsNull(Rate), Peek('Rate'), Rate) as Rate

Resident ExchangeRates

Order By ExcDate;

 

// 이름 바꾸기 및 삭제

Drop Table ExchangeRates;

Rename Table Tmp To ExchangeRates;

Drop Table Dates;

 

For more information

https://qliksense.tistory.com/

https://blog.naver.com/about_qlik

qliker@kakao.com

Qliker