Vorrei creare una misura calcolata che riassuma solo un sottoinsieme specifico di record nella tabella dei fatti basata su un attributo di dimensione.Come si definisce una misura calcolata in MDX in base a un attributo di dimensione?
Attribuite:
Dimension
- Data
- LedgerLineItem {carica, pagamento, write-off, Copay, Credit}
Misure
- LedgerAmount
relazioni
* LedgerLineItem è una dimensione degenerata FactLedger
Se mi abbattere LedgerAmount da LedgerLineItem.Type posso facilmente vedere quanto è caricato, pagato, di credito, ecc, ma quando lo faccio non scomposizione per LedgerLineItem.Type Non riesco ad aggiungere facilmente credito, pagato, credito, ecc. in una tabella pivot. Vorrei creare misure calcolate separate che sommano solo specifici tipi (o più tipi) di fatti contabili.
Un esempio di output desiderato sarebbe:
| Year | Charged | Total Paid | Amount - Ledger |
| 2008 | $1000 | $600 | -$400 |
| 2009 | $2000 | $1500 | -$500 |
| Total | $3000 | $2100 | -$900 |
Ho cercato di creare la misura calcolata una coppia di modi e ognuna funziona in alcune circostanze ma non in altre. Ora, prima che qualcuno dica di farlo in ETL, l'ho già fatto in ETL e funziona perfettamente. Quello che sto cercando di fare per imparare a capire meglio MDX è capire come duplicare ciò che ho fatto nell'ETL in MDX, perché finora non sono in grado di farlo.
Qui ci sono due tentativi che ho fatto e i problemi con loro. Funziona solo quando il tipo di ledger si trova nella tabella pivot. Esso restituisce la giusta quantità dei movimenti contabili (anche se in questo caso è identico a [importo - contabilità] ma quando provo per rimuovere il tipo e solo ottenere la somma di tutte le voci contabili che restituisce sconosciuto
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' ;
. Funziona solo quando il tipo di ledger non è nella tabella pivot. Restituisce sempre l'importo totale del pagamento, che non è corretto quando sto tagliando per tipo poiché mi aspetto di vedere solo la parte di credito sotto credito, la parte pagata, sotto pagato, $ 0 in carica, ecc
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'è un modo per rendere questo tornare i numeri corretti indipendentemente dal fatto che Ledger.Type è includere d nel mio tavolo pivot o no?
Sei rock! Questo è ESATTAMENTE quello che stavo cercando. –