2011-06-07 18 views

Respuesta

23

podría seleccionar nada en el eje opuesto:

SELECT 
    { } on 0, 
    { DESCENDANTS([Dimension].[Hierarchy]) } on 1 
FROM [Cube] 

la selección de un conjunto vacío evita SSAS de la adición de la medida por defecto en el eje opuesto.

+1

Esta es una forma excelente de rellenar un parámetro de SSRS sin que el usuario espere a que se recargue la consulta principal. –

+2

Incluso podría hacer esto un poco más corto: el 'null' es redundante y será eliminado por el analizador MDX de todos modos, lo que resulta en un conjunto vacío. – FrankPl

+0

@FrankPI, cuando no selecciona un eje opuesto en SSAS, agrega la medida predeterminada. Esta consulta arroja un resultado diferente: solo el eje que consulta y ninguna de las medidas. El 'nulo' es ciertamente * no * redundante. –

0

Puede usar el objeto ADOMD Catalog para interrogar un cubo y averiguar qué medidas/dimensiones tiene, etc. Esto no involucra a MDX en absoluto.

+0

¿tiene un enlace en alguna parte que explique cómo hacerlo? o podrías publicar un ejemplo de código? – Galilyou

+0

¡No sé qué idioma estás usando! Usé ASP clásico para hacer esto hace años. Para .NET intente comenzar aquí http://msdn.microsoft.com/en-us/library/microsoft.analysisservices.adomdclient.cubedef.aspx –

1

Puede acceder a las vistas de catálogo, que menciona Magnus (que por cierto are documented here), a partir de SQL Server 2008 utilizando la sintaxis SQL siguiente en lugar de MDX:

SELECT * 
    FROM $system.MDSCHEMA_MEMBERS 
WHERE ... 

El SQL entiende por Analysis Services es limitado: No hay uniones posibles, y la condición WHERE solo puede contener cláusulas como [HIERARCHY_UNIQUE_NAME] = '[Date].[Order Date]' conectadas a través de AND. GROUP BY y ORDER BY no son compatibles. Sin embargo, puede consultar los metadatos del cubo.

Según la interfaz que esté utilizando para acceder a Analysis Services, puede haber algunos problemas, ya que estos metadatos se devuelven en formato de conjunto de resultados, no en formato de conjunto de celdas.

1

La forma en que utiliza para consultar sin datos fue:

WITH MEMBER Measures.Amount AS 0 
SELECT { 
    [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [-cubeName-] 

Pero después de ver OFERTAS trabajan en el Analizador de SQL que aprendí sobre

SELECT { 
    [-dimensionName-].[-hierachyName-].Members 
} ON COLUMNS 
FROM [$-dimensionName-] 

por ejemplo,

SELECT { Organization.Organization.Members } ON COLUMNS FROM [$Organization] 
No

seguro de si hay efectos secundarios no deseados de esta ruta, pero si sólo desea volcar el contenido de una jerarquía sin tener que preocuparse acerca de los datos, es otra opción.

Cuestiones relacionadas