DrillupMember (MDX)
Restituisce i membri di un set specificato che non sono discendenti dei membri di un secondo set specificato.
Sintassi
DrillupMember(Set_Expression1, Set_Expression2)
Argomenti
Set_Expression1
Espressione MDX (Multidimensional Expression) valida che restituisce un set.Set_Expression2
Espressione MDX (Multidimensional Expression) valida che restituisce un set.
Osservazioni
La funzione DrillupMember restituisce un set di membri in base ai membri specificati del primo set che sono discendenti di membri del secondo set. Il primo set può avere qualsiasi dimensionalità, mentre il secondo deve contenere un set unidimensionale. L'ordine tra i membri originali del primo set viene mantenuto. La funzione costruisce il set includendo solo i membri del primo set che sono discendenti immediati dei membri del secondo set. Se il predecessore immediato di un membro del primo set non è presente nel secondo set, il set restituito dalla funzione include il membro del primo set. Vengono inoltre inclusi i discendenti presenti nel primo set che precedono un membro predecessore del secondo set.
Il primo set può contenere tuple anziché membri. La funzione per il drill-down di tuple è un'estensione di OLE DB e restituisce un set di tuple anziché di membri.
Importante |
---|
Il drill-up di un membro verrà eseguito solo se il membro è seguito immediatamente da un elemento figlio o un discendente. L'ordine dei membri nel set è rilevante sia per le funzioni di tipo drill-down che per quelle di tipo drill-up. Per ordinare i membri del primo set in modo corretto, è consigliabile utilizzare la funzione Hierarchize. |
Esempio
I tre esempi seguenti sono identici ad eccezione del secondo set. Nel primo esempio, il secondo set è United States. Di conseguenza, Colorado viene escluso dal set di risultati. È un discendente di United States.
SELECT DrillUpMember (
{ [Geography].[Geography].[Country].[Canada]
,[Geography].[Geography].[Country].[United States]
,[Geography].[Geography].[State-Province].[Colorado]
,[Geography].[Geography].[State-Province].[Alberta]
,[Geography].[Geography].[State-Province].[Brunswick]
}
, {[Geography].[Geography].[Country].[United States]}
) ON 0
FROM [Adventure Works]
Il secondo esempio mostra l'importanza dell'ordine dei membri. Poiché la funzione DrillupMember esegue il drill-up solo dei membri seguiti immediatamente dai discendenti del primo set, non eseguirà il drill-up del membro Canada. Canada è separato dai relativi discendenti da United States e Colorado. Se si riordinano i membri in modo che Canada sia direttamente sopra Alberta, Alberta e Brunswick verranno esclusi dal set di righe.
SELECT DrillUpMember (
{ [Geography].[Geography].[Country].[Canada]
,[Geography].[Geography].[Country].[United States]
,[Geography].[Geography].[State-Province].[Colorado]
,[Geography].[Geography].[State-Province].[Alberta]
,[Geography].[Geography].[State-Province].[Brunswick]
}
, {[Geography].[Geography].[Country].[Canada]}
)
ON 0
FROM [Adventure Works]
Il terzo esempio mostra come l'uso di Hierarchize può ridurre gli effetti dell'ordine dei membri ed eseguire il drill-up del membro Canada.
SELECT DrillUpMember (
Hierarchize
(
{ [Geography].[Geography].[Country].[Canada]
,[Geography].[Geography].[Country].[United States]
,[Geography].[Geography].[State-Province].[Colorado]
,[Geography].[Geography].[State-Province].[Alberta]
,[Geography].[Geography].[State-Province].[Brunswick]
}
), {[Geography].[Geography].[Country].[Canada]}
)
ON 0
FROM [Adventure Works]