Come visualizzare il totale di un livello come valore dell'ultimo figlio in MDX
Domanda
Ho una query MDX che elenca una misura per tutti i livelli "Settimana" e "Giorno" nel database OLAP. Ad esempio
SELECT
{
HIERARCHIZE( {[Business Time].[Week].members, [Business Time].[Date].members} )
}
ON ROWS,
{
[Measures].[Quantity]
}
ON COLUMNS
FROM [Sales]
Laddove la misura viene visualizzata per una settimana, invece di mostrare il totale di tutti i valori del giorno, vorrei mostrare il valore dell'ultimo giorno della settimana. Ad esempio
Settimana 1: 12
15 settembre: 10
16 settembre: 20
17 settembre: 12
18 settembre: 15
19 settembre: 8
20 settembre: 9
21 settembre: 12
Settimana 2: 15
22 settembre: 12
23 settembre: 15
Come posso raggiungere questo obiettivo in MDX?
Soluzione
Aggiungi una nuova misura calcolata all'inizio del tuo MDX che mostra il valore dell'ultimo giorno solo se viene mostrato a livello di settimana, altrimenti lascialo inalterato:
WITH MEMBER [Measures].[Blah] AS
'IIF(
[Business Time].currentMember.level.name = "Week",
([Business Time].currentMember.lastChild, [Measures].[Quantity]),
([Business Time].currentMember, [Measures].[Quantity])
)'
Mi aspetto che un cliente abbia richiesto questa strana richiesta e prevedo che tra un mese nello stesso ufficio riceverai una chiamata da qualcuno nello stesso ufficio, dicendo che il "totale" settimanale è sbagliato in questo rapporto!