2016-09-22 3 views
0

이 MDX 쿼리의 수학적 개념을 이해하려고합니다.mdx 계산을 이해하려고 시도합니다.

TL : DR :이 쿼리는 어떻게 실행됩니까? 조치 판매 및 비용 [국가]

나는 [고객]의 계층 구조를 가지고 :.

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France], [measures].[sum sales])) 
member [measures].[div] as ([Measures].[Sum Sales]/[Measures].[Sum Cost]) 

SELECT 
{ [measures].[div] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 

긴 이야기 (? "div에"어떻게 계산). 이 쿼리

: 나는이 멤버 만들

Australia: cost = 8266005, sales = 18005422 
France: cost = 4478131, sales = 9610041 

:

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost] } 
ON COLUMNS, 
{ [Customer].[Country].[Australia] , [Customer].[Country].[France] } 
ON ROWS 

나는 결과를 얻을

// substract france from australia 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France])) 

을하고, 2 대신에 그것으로 쿼리를 실행 회원 :

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France])) 

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 
01 이 말이

x: cost = 3787874, sales = 8395381 

: 23,516,

과의 결과를 얻었다. 그럼이 같은 멤버에서 판매를 사용하는 프랑스를 변경 :이 결과를 가지고

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France], [measures].[sum sales])) 

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 

:

x: cost = -1344036, sales = 8395381 

와 내가 호주에 대한 것을 볼 수 있으며, 열에서 측정을 사용하는 경우와 프랑스의 경우 튜플의 판매량이 "강세"이고 비용은 계속 유지됩니다. 즉 "비용"뺄셈은 실제로 (AU, 비용) - (FR, 판매)입니다.

그래서 나는 사용자 정의 측정 설정

(! 여기서 문제입니다)이 시도 :

member [measures].[div] as ([Measures].[Sum Sales]/[Measures].[Sum Cost]) 

을 그리고 다른 조치 컬럼에 넣어 :

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France], [measures].[sum sales])) 
member [measures].[div] as ([Measures].[Sum Sales]/[Measures].[Sum Cost]) 

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost], [measures].[div] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 

x 판매 및 비용에 대한 결과는 동일합니다. "div"= -6.2463950147143. 계산 방법은 무엇입니까?

div = ((AU,sales) - (FR,sales))/((AU,cost) - (FR,cost)) = (18005422 - 9610041)/(8266005 - 4478131) = 2.216383 
: 내가 예상 한 결과를
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France]])) 

프랑스

에서 판매를 꺼내 가지고

...

(AU,sales)/(AU,cost) - (FR,sales) = 18005422/8266005 - 9610041 = -9610038.82175 

을하지만 그 잘못 : 나는 그것이해야한다고 추측에는 요

모든 도움 주셔서 감사합니다.

답변

0

마침내 나에게왔다!

내가 가진 수는 다음과 같습니다 프랑스는 계산에 사용하는 측정을 필요로 지금까지

div = ((AU,sales) - (FR,sales))/((AU,cost) - (FR,sales)) = (18005422 - 9610041)/(8266005 - 9610041) = -6.2463959 

, 그것은 판매를 도착했을 때. 그것은 규칙입니다.

앞으로 누군가를 도울 수 있기를 바랍니다. 아무도이 일에서 intrested가 아닌 것처럼 보이지만 ... :(

관련 문제