이 블로그 검색

2011년 4월 7일 목요일

SSAS Time Duration to measure

시간을 측정값으로 사용하기


1. 대상컬럼 변환
시간컬럼을 측정값을 numeric형태로 변환 .
ETL_LOG라는 테이블의 작업시간 컬럼의 데이터타입은 TIME(7).
이것을 초단위로 바꾸고 하루(86,400)로 나눔.


예)
SELECT
             WTIME                                                                                    AS [작업시간(HH:MM:SS.MS)]
,             (LEFT(CONVERT(VARCHAR,WTIME),2)*3600                    
+           SUBSTRING(CONVERT(VARCHAR,WTIME),4,2)*60
+           SUBSTRING(CONVERT(VARCHAR,WTIME),7,2) ) / 86400.0000          AS [작업시간()/1DAY()]
FROM ETL_LOG
ORDER BY 1 DESC  

---- Result




















2. 계산된 측정값 추가
큐브 생성 시 위에서 추가한 시간측정값컬럼을 측정값에 포함시키고 계산된 측정값 탭에서
스크립트를 추가 (스크립트 뷰모드에서 추가)



---- Script 추가
/*
The CALCULATE command controls the aggregation of leaf cells in the cube.
If the CALCULATE command is deleted or modified, the data within the cube is affected.
You should edit this command only if you manually specify how the cube is aggregated.
*/
CALCULATE;

CREATE MEMBER CURRENTCUBE.[Measures].[소요시간]
AS [Measures].[WDURATION],
FORMAT_STRING = IIF(
      [Measures].[WDURATION] < 1
     ,'"0 day"  hh:mm:ss'
     ,'"' + cstr(int([Measures].[WDURATION])) + ' day" hh:mm:ss'),
VISIBLE = 1 ,  ASSOCIATED_MEASURE_GROUP = '로그측정값'  ;

노란색으로 표시된 부분만 변경.
소요시간 > 새로만들 계산된 측정값 명
WDURIATION > 작업시간 측정값 명
로그측정값 > 측정값그룹 명


3. 확인
SSMS 상에서 확인.

---- SSMS에서 확인





댓글 없음:

댓글 쓰기