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
'Qlik Sense 개발가이드' 카테고리의 다른 글
Qlik Sense Merge 를 이용한 증분 적재 (Incremental Load using Merge) (0) | 2022.07.14 |
---|---|
클릭센스 테이블 차트에서 헤더 숨김 (Hide table chart header) (0) | 2022.07.11 |
Qlik Sense Dual & Exists 함수 사용사례 (0) | 2022.07.04 |
일자 구간을 연속된 일자가 있는 테이블 생성 (IntervalMatch) (0) | 2022.07.03 |
차트 레이블(Label) 개선사항들 (0) | 2022.05.29 |