차원 특성을 기반으로 한 팩트 테이블의 특정 레코드 하위 집합 만 요약 한 계산 된 계수를 만들고 싶습니다.차원 특성을 기반으로 MDX에서 계산 된 계수를 정의하는 방법은 무엇입니까?
을 감안할 때 :
차원
- 날짜
- LedgerLineItem {요금, 지불, 쓰기 끄기, 고용인, 신용}
조치
- LedgerAmount
관계
* LedgerLineItem는
내가 LedgerLineItem.Type에 의해 LedgerAmount을 무너 뜨리는 경우에 나는 쉽게, 등, 충전 지불 얼마나 볼 신용 할 수 FactLedger
의 퇴화 치수하지만 내가하지 않을 때 LedgerLineItem.Type으로 분석 해보면 피벗 테이블에 쉽게 신용, 유료, 신용 등을 추가 할 수 없습니다. 원장 사실의 특정 유형 (또는 여러 유형) 만 합산하는 별도의 계산 된 측정 값을 만들고 싶습니다.원하는 출력의 예
는 다음과 같습니다 내가 계산 된 측정에게 몇 가지 방법을 만들려고하고 각자가 어떤 상황에 있지만 다른 작동| Year | Charged | Total Paid | Amount - Ledger |
| 2008 | $1000 | $600 | -$400 |
| 2009 | $2000 | $1500 | -$500 |
| Total | $3000 | $2100 | -$900 |
. 이제 누구나 ETL에서이 작업을 수행하기 전에 ETL에서 이미 수행했으며 제대로 작동합니다. MDX를 더 잘 이해하는 법을 배우기 위해 노력하고있는 일은 MDX에서 ETL로 수행 한 작업을 지금까지와 같이 복제하는 방법을 파악하는 것입니다.
여기에는 두 가지 시도와 문제가 있습니다. 원장 유형이 피벗 테이블에있는 경우에만 작동합니다. 이 경우는 동일하지만, 그것은 (원장 항목의 정확한 금액을 반환 [양 - 원장]하지만 난 종류를 제거하고 그냥 알 수없는 반환 모든 원장 항목의 합계를 얻을 때
CREATE MEMBER CURRENTCUBE.[Measures].[Received Payment]
AS CASE WHEN ([Ledger].[Type].currentMember = [Ledger].[Type].&[Credit])
OR ([Ledger].[Type].currentMember = [Ledger].[Type].&[Paid])
OR ([Ledger].[Type].currentMember = [Ledger].[Type].&[Held Money: Copay])
THEN [Measures].[Amount - ledger]
ELSE 0
END
, FORMAT_STRING = "Currency"
, VISIBLE = 1
, ASSOCIATED_MEASURE_GROUP = 'Ledger' ;
. 원장 유형이 피봇 테이블에없는 경우에만 작동합니다. 항상 총 지불 금액을 반환합니다. 이는 유형별로 슬라이스 할 때 부정확합니다. 이는 신용 한도, 유료 부분, $ 0 충전 중입니다.
CREATE MEMBER CURRENTCUBE.[Measures].[Received Payment]
AS sum({([Ledger].[Type].&[Credit]), ([Ledger].[Type].&[Paid])
, ([Ledger].[Type].&[Held Money: Copay])}
, [Measures].[Amount - Ledger])
, FORMAT_STRING = "Currency"
, VISIBLE = 1
, ASSOCIATED_MEASURE_GROUP = 'Ledger' ;
Ledger.Type이 포함되어 있는지 여부에 관계없이 올바른 숫자를 반환 할 수있는 방법이 있습니까? 내 피벗 테이블 안에 있니?
당신은 락! 그것은 내가 찾고 있던 바로 것입니다. –