큐브 계산을 설정하려고합니다. 현재 나의 송금은 환율을받을 것이며이 금액은 매월 초에 보내질 것입니다. 때로는 그 달에 변경 될 것이고, 그 통화 이후에 사용할 환율을 받게 될 것입니다.재귀 일별 계산 집계
초기 문제는 LastNonEmpty가 질문의 입상 성을 사용한다는 것입니다. 즉, 하루에 대부분의 요일에 쿼리 할 때 환율이 없으므로 계산이 실패합니다. 날짜 차원에서 볼 때
WITH
MEMBER [Measures].[EOD]
AS
Aggregate({NULL:[Date].[Calendar Y M D].CurrentMember}, [Measures].[End Of Day Rate])
그래서, 그것은 가장 최근의 환율을 얻을 것이다 : 나는 나중에 다음에, 처음 재귀 계산과, 환율의 측정을 대체했다. 다음으로, 년/월별로 조회 할이 모든 작품을 잘
SELECT
{
[Measures].[Converted]
}
ON COLUMNS,
NON EMPTY
{
[Date].[Calendar Y M D].[Calendar Day].&[2010-Q3-08-01] :
[Date].[Calendar Y M D].[Calendar Day].&[2010-Q3-08-31]
}
ON ROWS
FROM [Cube]
하지만 이상적으로 내가 선호하는 것 :
MEMBER [Measures].[Converted]
AS
SUM
(
{[Currency].[Currency].[Currency] * [Date].[Calendar Y M D].CurrentMember},
(
(
[Measures].[Sales]
)
/[Measures].[EOD]
)
)
가 마지막으로 내가 쿼리에서 이것을 사용 : 다음과 같이 매일 계산을 할 수 있습니다 월말 보고서입니다. 이 모든 것을 코드 계층에서 합할 수는 있지만 MDX를 사용하면 코드 자체에서 처리 할 수 있습니다.
문제는 계산이 거의 재귀 적으로 일일 수준에서 수행 된 다음 해당 월 (또는 심지어 1 년) 수준까지 롤업하고 싶습니다. 그것은 전체 일정에 대한 집계를하려고 노력으로
나는 서버를 잠긴 위의 시간이 집계 한에 대한 환율을 교환하지만, SSMS에서 큐브를 찾아 시도, 통화 변환 마법사를 시도했다 :(어떤 접근 방식을 취하는 것이 가장 좋을까요?
흥미로운 접근 방법이지만 작동하지 않을 것이라고 생각합니다. 매일 변환 할 데이터가 있지만 매일 환율이 없습니다. 데이터에 가장 최근의 환율을 사용해야합니다. 일일 수준에서 그 통화의 최신 환율을 거꾸로보고 있습니다. 재귀 CTE보기로 환율을 거꾸로 생성 할 수 있는지 궁금합니다 ... – Meff
OK 재귀 CTE가 작동 했으므로 다음 환율을 사용하여 날짜별로 위쪽으로 걸어갔습니다. 통화. 결국 4 CTE, 1 재귀 적이 있었다 : o – Meff