2009-02-27 3 views
0

MDX를 처음 사용하고 다음 문제를 해결하려고합니다. 조사 된 계산 된 회원, subselects, 범위 진술 등하지만 내가 원하는 것을 할 수 없어. , 내가 (someEntity2 이내) 내부 상쇄 거래를 숨기기 계정 원장이, 즉집계가있는 SQL 하위 쿼리와 동일한 MDX

SELECT SUM(netMarketValue) net, 
    SUM(CASE WHEN netMarketValue > 0 THEN netMarketValue ELSE 0 END) assets, 
    SUM(CASE WHEN netMarketValue < 0 THEN netMarketValue ELSE 0 END) liabilities, 
    SUM(ABS(netMarketValue)) gross 
    someEntity1 
FROM (
SELECT SUM(marketValue) netMarketValue, someEntity1, someEntity2 
FROM <some set of tables> 
GROUP BY someEntity1, someEntity2) t 
GROUP BY someEntity1 

:

은 이제 나는 다음과 같은 SQL 쿼리에 MDX에 해당 마련하기 위해 노력하고있어 가정 해 봅시다 그런 다음 someEntity2에 의해 자산을 합산 한 후에 자산 &을 계산하십시오. 그렇다면 그 자산의 총계가 더 큰 엔티티 someEntity1에 의해 집계 된 & 부채를보고 싶습니다.

내 MDX 스키마에서 someEntity1 & someEntity2에 대한 치수가있는 큐브가 있고 아마도 marketValue가 사실 테이블/측정 값이됩니다. 내 하위 쿼리가 수행하는 (그물 계산) 다른 DSV를 만들 수 있다고 가정하고 단순히 측정 값 차원으로 큐브를 만듭니다. 그러나 더 좋은 방법이 있는지 궁금합니다. 차라리 데이터베이스에 중복 정보가 많기 때문에 2 개의 큐브 (이 계산에는 하나, 다른 사용 예에는 세분화 수준을 낮추기)가 필요하지 않습니다. 이들은 매우 큰 큐브가 될 것입니다.

답변

0

나는 큐브에 집계 논리를 남겨 두어야한다고 생각한다.

귀하의 경우 계정 크기를 만들면 add Account Intelligence이됩니다. 그러나이 방법은 SQL Server Enterprise Edition (2005 이상)에서만 작동합니다.

표준 버전을 사용하는 경우 표준 방법은 to use unary operators입니다.

그게 우리가 SQL Server 2000에서 사용했던 방법이고, here 좋은 예가 있습니다.

0

나는 두 개의 큐브가 아니라 두 개의 팩트 테이블 (때로는 별자리 스키마라고 함)이있는 큐브 하나를 원한다고 생각합니다. 그 질문은 몇 달 전에 쓰여졌으니 누군가가 더 많은 정보를 요구하지 않으면 여기서 더 자세히 설명하지 않겠습니다.

관련 문제