@RELATIVE
가 아닌 @LEVMBRS
를 사용합니다.@RELATIVE
가 아닌 @CHILDREN
을 사용합니다.@REMOVE
및 @LEVMBRS
를 사용합니다.Planning에 저장된 날짜를 사용하여 계산 수행
Planning에서는 날짜 값을 입력할 수 있습니다. 예를 들어 MM/DD/YYYY 형식을 사용하여 시작 날짜를 11/01/2019로 입력하고 종료 날짜를 06/01/2020으로 입력할 수 있습니다. Oracle Essbase는 날짜 형식이 지정된 값을 숫자 값으로 저장합니다. 예를 들어 앞의 시작 날짜는 20191101로 저장되고 종료 날짜는 201200601로 저장됩니다. Essbase 함수, 예를 들어 @ROUND
, @INT
또는 @TRUNCATE
함수를 사용하여 시작 날짜와 종료 날짜 간 개월 수를 계산할 수 있습니다. 다음 예에서는 @ROUND
함수를 사용하여 시작 날짜와 종료 날짜 간 개월 수를 계산하는 방법을 보여 줍니다.
(@ROUND ("End Date",-4) - @ROUND ("Start Date",-4))/10000*12이
(20200000 – 20190000)/10000 *12
계산의 결과는 12입니다.(@ROUND ("End Date",-2) - @ROUND ("End Date",-4))/100
(20200600 – 20200000)/100
계산의 결과는 6입니다.(@ROUND ("Start Date",-2) - @ROUND ("Start Date",-4))/100
(20191100 – 20190000)/100
계산의 결과는 11입니다.(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을 참조하십시오.