구문 고려사항

  • 전체 차원에서 사용되는 경우 항상 @RELATIVE가 아닌 @LEVMBRS를 사용합니다.
  • 해당하는 경우 @RELATIVE가 아닌 @CHILDREN을 사용합니다.
  • FIX 문의 일부 멤버만 제외하려는 경우 @REMOVE@LEVMBRS를 사용합니다.

Planning에 저장된 날짜를 사용하여 계산 수행

Planning에서는 날짜 값을 입력할 수 있습니다. 예를 들어 MM/DD/YYYY 형식을 사용하여 시작 날짜를 11/01/2019로 입력하고 종료 날짜를 06/01/2020으로 입력할 수 있습니다. Oracle Essbase는 날짜 형식이 지정된 값을 숫자 값으로 저장합니다. 예를 들어 앞의 시작 날짜는 20191101로 저장되고 종료 날짜는 201200601로 저장됩니다. Essbase 함수, 예를 들어 @ROUND, @INT 또는 @TRUNCATE 함수를 사용하여 시작 날짜와 종료 날짜 간 개월 수를 계산할 수 있습니다. 다음 예에서는 @ROUND 함수를 사용하여 시작 날짜와 종료 날짜 간 개월 수를 계산하는 방법을 보여 줍니다.

  1. 다음과 같이 종료 날짜 연도와 시작 날짜 연도 간 개월 수를 계산합니다.
    (@ROUND ("End Date",-4) - @ROUND ("Start Date",-4))/10000*12
    (20200000 – 20190000)/10000 *12 계산의 결과는 12입니다.
  2. 종료 날짜 연도 시작 및 종료 날짜 간 개월 수를 계산하여 더합니다.
    (@ROUND ("End Date",-2) - @ROUND ("End Date",-4))/100
    (20200600 – 20200000)/100 계산의 결과는 6입니다.
  3. 시작 날짜 연도 시작 및 시작 날짜 간 개월 수를 계산하여 뺍니다.
    (@ROUND ("Start Date",-2) - @ROUND ("Start Date",-4))/100
    (20191100 – 20190000)/100 계산의 결과는 11입니다.
  4. 이전 단계를 하나의 공식 (12+6-11)로 결합하여 시작 날짜와 종료 날짜 간 개월 수(7)를 계산합니다.
    (((@ROUND ("End Date",-4) - @ROUND ("Start Date",-4))/10000*12) + 
    ((@ROUND ("End Date",-2) - @ROUND ("End Date",-4))/100)-
    ((@ROUND ("Start Date",-2) - @ROUND ("Start Date",-4))/100))

@CURRMBR 함수 사용

현재 계산 중인 차원 멤버의 이름을 반환하는 @CURRMBR 함수는 복잡한 계산의 범위 지정 및 관리에 특히 유용합니다. 하지만 함수의 성능에 대한 영향을 고려해야 합니다.

블록은 하나의 희소 차원 멤버에만 해당하므로 희소 차원에서 @CURRMBR 함수를 사용하는 경우 성능이 영향을 받지 않습니다. 하지만 이 함수는 셀 레벨이 아니라 블록 레벨에서 계산을 실행하기 때문에 밀집 차원에서 사용되는 경우 이 함수의 성능이 느려집니다. 결과적으로 특정 밀집 차원 멤버가 쿼리에 없는 경우에도 이 함수는 모든 밀집 차원 멤버를 계산합니다. 따라서 밀집 차원에서는 이 함수를 신중하게 사용하십시오.

또한, @CURRMBR 함수를 밀집 차원에서 사용할 때 @CONCATENATE 같은 다른 함수와 함께 사용하는 경우 예기치 않은 결과나 오류가 발생할 수 있습니다. 예를 들어 쿼리의 동적으로 계산된 멤버가 "Actual"->@MEMBER(@CONCATENATE(@NAME (@CURRMBR ("Account")),"_Total")) 공식을 포함하고 있으며 계정 차원이 희소인 경우 쿼리의 계정이 적합한 아웃라인 멤버를 생성하는 한 쿼리는 오류 없이 실행됩니다. 하지만 계정 차원이 밀집이면 쿼리의 계정이 적합한 아웃라인 멤버를 생성하는 경우라도 쿼리 결과 다음과 같은 오류가 발생합니다.

Error executing formula for [member name] (line 0): attempt to cross a null @ member in function [@X]

@CURRMBR 함수는 블록 레벨에서 계산하므로 밀집 블록의 계정을 모두 계산하기 때문에 이러한 오류가 생성됩니다. 해당 블록 내의 일부 계정은 적합한 아웃라인 멤버를 생성하지 않으므로 앞의 오류 메시지가 발생합니다. @CURRMBR 함수에 대한 자세한 내용은 Oracle Essbase Technical Reference@CURRMBR을 참조하십시오.