2017-10-04 1 views
0

예제부터 시작해 보겠습니다. 나는 고객에 대한 천천히 변화하는 차원 테이블 포함 된 정보의 다음 코드가 있다고 가정 : 당신이 볼 수 있듯이Sisense : 내역 데이터보고를위한 자체 테이블 조인

key id  name country  valid_from valid_to version 
1 abcxyz John Switzerland 2012/01/01 2014/01/01 1 
20 abcxyz John Germany  2014/01/01 2017/01/01 2 
... 

, 고객의 정보의 모든 변화는 동일한 ID를 가진 테이블에 새 항목으로 기록되어 있지만, 버전이 1 씩 증가합니다 ( 필드가 테이블의 기본 키입니다)

이 테이블은 Sisense ElastiCube에서 가져온 다음 대시 보드 웹 응용 프로그램에서 액세스 할 수 있습니다.

제 질문은 : A 나라에서 B 나라로 이사 한 모든 고객을 보여주는 위젯을 어떻게 만들 수 있습니까? (A가 스위스이고 B가 독일 인 경우) John은 보고서에 나타납니다.

답변

0

(id, version)이 고유하고 버전 시퀀스에 간격이 없다고 가정하면이 쿼리는 한 나라에서 다른 나라로 옮겼다.

아니요은 고객 레코드의 최신 버전이 아니라 변경이 발생한 시점의 레코드 버전을 제공합니다. John은 버전 3에서 이탈리아에 거주 할 수 있었지만 질의는 여전히 독일 기록을 제공합니다.

select a.key as moved_from_key 
     ,b.key as moved_to_key 
    from customers a 
    join customers b on(
     b.id  = a.id 
    and b.version = a.version + 1 -- The version following A 
) 
where a.country = 'Switzerland' 
    and b.country = 'Germany'; 
+0

안녕하세요, Ronnis. 예, 정확 합니다만 SQL 코드로 문제를 해결하는 데 관심이 없기 때문에 Sisense의 대시 보드에 위젯을 만들어서이 작업을 수행하고 싶습니다. 그러나 Sisense의 같은 필드 (국가)에 2 개의 다른 필터를 넣을 수 없기 때문에이 작업을 수행 할 수 없었습니다. –