2017-12-13 28 views
1

I은 ​​다음 표를 가지고Spotfire의 데이터 차이 : 동일한 열

Id Claim_id Date   
4 111   10/08/2017 
5 333   27/08/2017 
2 111   07/08/2017 
3 222   08/08/2017 
1 444   03/07/2017 
7 333   02/09/2017 
6 333   28/08/2017 

동일한 Claim_id 관련된 많은 행 (기간)이있다; 열 "Id"는 "Date"열을 기반으로합니다 (최근 날짜가 더 큰 ID를 가짐).

나는 다음과 같은 출력으로, claim_id을 통해 날짜 차이에 의해 주어진 계산 열을 만들 필요가 : 여기에 주어진 코드를 사용하는 것을 시도했다

Id Claim_id Date  Days 
3 111   10/08/2017 3 
1 333   27/08/2017 
2 111   07/08/2017 
4 222   08/08/2017 
7 444   03/07/2017 
6 333   02/09/2017 5 
5 333   28/08/2017 1 

: Spotfire date difference using over function를하지만 (이 작동하지 않습니다 잘못된 값을 생성 함). 소스 테이블에 대한 액세스 권한이 없기 때문에 내 테이블이 정렬되지 않았기 때문에 주문할 수 없습니다.

어떻게 표현식을 수정할 수 있습니까? 감사합니다.

발렌

+0

시도한 정확한 표현은 무엇입니까? 잘못된 결과는 무엇입니까? –

+0

"DateDiff ('day', First ([Date) OVER (Intersect ([ClientId], Previous ([Date]))), [Date])"이며, 이전 청구 (클레임이 분류되지 않은 경우) 이전에 더 최근의 클레임이 있고 두 개의 다른 월이있을 때 차이를 계산하지 않는 경우 차이를 계산합니다 (예 : 02/09/2017 - 28/08/2017). –

답변

1

이 작업을 수행하는 한 가지 방법은 열 'decreasing_count'를 추가하는 것입니다 V.Ang- @.

이것은 ID의 인스턴스 수를 날짜로 계산합니다. 의미 - 날짜가 가장 높은 ID가 먼저 계산 된 다음 이전 날짜보다 낮은 날짜가있는 동일한 ID의 다음 인스턴스가 따라옵니다. 이 칼럼의 장점은이 솔루션이 작동하도록 데이터를 정렬 할 필요가 없다는 것입니다.

이제 'decline_count'열을 사용하여 날짜의 차이를 계산하십시오.

decreasing_count 열 표현 :

Count([Claim_id]) over (Intersect([Claim_id],AllNext([Date]))) 

참고 :이 열은 백그라운드에서 작동합니다. 당신은 테이블에

일 계산 된 열 식을를 표시 할 필요가 없습니다 :

Days([Date] - Min([Date]) over (Intersect([Claim_id],Next([decreasing_count])))) 

최종 출력 :

enter image description here

희망이 도움이!

+0

완벽하게 작동합니다! 당신의 시간과 도움에 감사드립니다. –

+0

당신은 오신 것을 환영합니다! – ksp585