>

각 ID, 각 ID의 첫 번째 레코드와 각 버전이 0 인 각 반복에 대한 일 (행별)의 차이를 계산해야합니다. 코드 스 니펫을 거의 시도하지 않았지만 다음과 같이 작동하지 않았습니다.

Calculated Time = 
VAR Index = Table[Version]
VAR Reference = Table[Id]
VAR Prevtime =
    CALCULATE (
        FIRSTNONBLANK ( Table[Date], TRUE () ),
        FILTER (Table, Table[Id] = Reference  && Table[Version]  = Index)
    )
RETURN
Table[Date] - Prevtime

원하는 결과 :

ID  Version Date              Calculated time      Formula
12345   1   11/1/2018 8:08      0                   0
12345   1   11/16/2018 8:39     15.02152778         =C3-C2
12345   1   11/16/2018 13:29    0.201388889         =C4-C3
12345   1   11/16/2018 13:32    0.002083333 
12345   2   11/16/2018 8:39     0   
12345   2   11/26/2018 14:24    10.23958333 
12345   2   11/26/2018 14:24    0   
12345   3   11/16/2018 8:39     0   
12345   3   12/6/2018 12:13     20.14861111 
12345   3   12/6/2018 12:20     0.004861111

모든 의견을 부탁드립니다. 위 코드를 변경해야하거나 도움을 줄 수 있는지 알려주십시오.


  • 답변 # 1

    다음과 같은 것을 찾고 있다고 생각합니다 :

    다음과 같이 작동합니다 :
    와이즈 비즈  현재 행의 [ID] 및 [Version]에서 필터링 된 'Table'테이블을 반환합니다. 그런 다음 계산 함수는 필터링 된 테이블에서 현재 행의 [날짜]보다 작은 가장 큰 [날짜]를 계산합니다.

    EARLIER 함수는 현재 행에서 [날짜] 값을 얻기 위해 행 컨텍스트 인 이전 필터 컨텍스트로 이동하는 데 사용됩니다.

    따라서 VAR prevTime은 [ID]와 [Version]이 동일한 이전 [Date]입니다. 이전 [Date]가 존재하지 않으면 prevTime은 공백입니다.

    ALLEXCEPT ( 'Table', 'Table'[ID], 'Table'[Version] )
    
    
    Calculated time = VAR prevTime = CALCULATE ( MAX ( 'Table'[Date] ), ALLEXCEPT ( 'Table', 'Table'[ID], 'Table'[Version] ), 'Table'[Date] < EARLIER ( 'Table'[Date] ) ) RETURN IF ( ISBLANK ( prevTime ), BLANK (), 'Table'[Date] - prevTime )

  • 이전 php - 데이터베이스에 삽입하기 전에 데이터가 특정 조건을 충족하는지 확인하는 방법
  • 다음 artificial intelligence - 수치 적 개념 계층을 생성하는 알고리즘