2012-05-23 3 views
3

우선 SSAS가 처음입니다. 그러나 내가 성취하고자하는 것은 상당히 사소한 것으로 보인다 (나는 희망한다).맞춤 시간대의 첫 번째 또는 마지막 값 가져 오기

두 번째 트랜잭션 데이터가 있습니다. 그리고 저는 두 개의 시간 차원을 만들었습니다. 하나의 차원은 시간 차원 마법사를 사용하여 표준 시간 차원을 기반으로합니다. 다른 하나는 나 자신의 스크립트에 의해 생성 된 시간 차원으로 각 날의 초에 대한 레코드가 있습니다.

사실 테이블을 내 차원에 연결하고 내 큐브를 올바르게 배포했습니다. 내 사실 데이터 내에서 속성 중 하나는 가격입니다. 이제 min과 max를 사용하여 특정 기간 동안 발생한 가장 높은 가격과 가장 낮은 가격을 얻을 수있었습니다. 제가 얻고 자하는 것은 일정 기간 동안 발생한 첫 번째이자 마지막 가격입니다. "첫 번째 값"과 "마지막 값"을 사용하여 시도했지만 반환되는 것은 정확하지 않습니다. 이는 일종의 집계 인 것 같습니다.

예를 들면. 1 분 동안 내 가격 인 경우 :

1233

, 1233.85,

1300,1250는 첫째, 1233을 반환해야하고 마지막으로이 모든 기간에서 작동합니다 1250 반환해야합니다.

추가하려면 내 맞춤 시간 측정 기준에 대해 유형을 '시간'으로 설정했지만 결과가 동일하게 유지되었습니다. 나는 어떤 제안을 주셔서 감사합니다. 기본적으로 기본 값과 마지막 값의 첫 번째 값을 얻으려고합니다. 이 방법의 날 부분을 가져옵니다

예 쿼리 : 가격 카운트 열이 여러 레코드를 가지고

SELECT NON EMPTY 
    { [Measures].[High] 
    , [Measures].[Low] 
    , [Measures].[Price Count] 
    , [Measures].[Price] 
    } ON COLUMNS 
    , NON EMPTY 
    { [Dim Date].[Year - Week - Date].[Date].ALLMEMBERS 
    * HEAD([Dim Time].[Hour - Second].[Second].ALLMEMBERS) 
    } ON ROWS 
FROM [Cube] 

enter image description here

알 수 있습니다. 여기에서 첫 번째 기록이 필요합니다. 실제 합계는 필요 없습니다.

답변

0

시간 차원의 첫 번째 초에 대한 가격을 가져 오는 새 측정 값을 만들어보십시오. 예를 들어 하루 중 첫 번째 시간을 원할 경우 행에 대한 교차 조인에서는 필요하지 않지만 계산 된 측정 값 내에서 [Hour - Second] 계층의 첫 번째 초를 가져올 수 있습니다.

with 
    member [Measures].[First Price] as 
     (head(descendants([Dim Time].[Hour - Second].CurrentMember, Second)), [Measures].[Price]) 
select 
    non empty { 
     [Measures].[High], 
     [Measures].[Low], 
     [Measures].[Price Count], 
     [Measures].[Price] 
    } on columns, 
    { 
     [Dim Date].[Year - Week - Date].[Date].ALLMEMBERS 
    } on rows 
from 
    [Cube] 

기간을 더 작게하려면 시간에 따라 다음과 같이 시도하십시오.

non empty { 
     [Dim Date].[Year - Week - Date].[Date].ALLMEMBERS * [Dim Time].[Hour - Second].[Hour] 
    } on rows 
관련 문제