Tôi muốn tạo phép tính được tính tổng chỉ một tập hợp con cụ thể của các bản ghi trong bảng sự thật của tôi dựa trên thuộc tính thứ nguyên.Làm cách nào để xác định Số đo được tính trong MDX dựa trên Thuộc tính thứ nguyên?
Given:
Dimension
- ngày
- LedgerLineItem {phí, thanh toán, Viết-Off, đồng thanh toán, tín dụng}
biện pháp
- LedgerAmount
Mối quan hệ
* LedgerLineItem là một chiều hướng thoái hóa của FactLedger
Nếu tôi phá vỡ LedgerAmount bởi LedgerLineItem.Type tôi có thể dễ dàng nhìn thấy bao nhiêu là tính phí, thanh toán, tín dụng, vv, nhưng khi tôi làm không phá vỡ nó xuống bởi LedgerLineItem.Type Tôi không thể dễ dàng thêm tín dụng, trả tiền, tín dụng, vv vào một bảng tổng hợp. Tôi muốn tạo các biện pháp tính toán riêng biệt chỉ tính tổng loại cụ thể (hoặc nhiều loại) của các dữ kiện sổ kế toán.
Một ví dụ về các đầu ra mong muốn sẽ là:
| Year | Charged | Total Paid | Amount - Ledger |
| 2008 | $1000 | $600 | -$400 |
| 2009 | $2000 | $1500 | -$500 |
| Total | $3000 | $2100 | -$900 |
Tôi đã cố gắng để tạo ra các biện pháp tính toán một vài cách và mỗi người làm việc trong một số trường hợp nhưng không phải trong những người khác. Bây giờ trước khi bất cứ ai nói làm điều này trong ETL, tôi đã thực hiện nó trong ETL và nó hoạt động tốt. Những gì tôi đang cố gắng làm là một phần của việc học để hiểu MDX tốt hơn là tìm ra cách nhân bản những gì tôi đã làm trong ETL trong MDX cho đến nay tôi không thể làm điều đó.
Dưới đây là hai lần tôi đã thực hiện và các vấn đề với họ. Điều này chỉ hoạt động khi loại sổ kế toán nằm trong bảng tổng hợp. Nó trả về đúng số lượng các mục sổ kế toán (mặc dù trong trường hợp này nó giống như [số tiền - sổ cái] nhưng khi tôi cố gắng để loại bỏ loại và chỉ nhận được tổng của tất cả các mục sổ kế toán nó sẽ trả về chưa biết
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' ;
. Điều này chỉ hoạt động khi loại sổ kế toán không có trong bảng tổng hợp. Số tiền này luôn trả về tổng số tiền thanh toán, điều này không chính xác khi tôi cắt theo loại như tôi sẽ chỉ thấy phần tín dụng dưới dạng tín dụng, phần trả tiền, được thanh toán, $ 0 dưới phí, v.v.
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' ;
Có cách nào để trả lại số chính xác cho dù Ledger có được bao gồm hay không. d trong bảng tổng hợp của tôi hay không?
Bạn đá! Đó là chính xác những gì tôi đang tìm kiếm. –