Pregunta

Quiero crear un gráfico de barras con una barra para cada mes y alguna medida.

Pero también quiero filtrar por un rango de días que podría no superponerse completamente con parte del mes.

Cuando eso suceda, me gustaría que el recuento agregado de esos meses solo se agregue a los días que caen en mi rango de fechas y no obtenga el total de todo el mes.

¿Es eso posible con MDX y, de ser así, cómo debería verse la solicitud?

¿Fue útil?

Solución

Crear una segunda dimensión de tiempo, utilizando una dimensión virtual de la dimensión original.Use una dimensión en el lugar donde y otro en el selecto.

Esto suele suceder de todos modos si algunas personas quieren "tiempo comercial" de cuartos y períodos, y otros prefieren meses.O si tiene un año financiero que se ejecuta abril-abril.

Otros consejos

Puede utilizar la subselección.Puedes encontrar más información sobre esto. página y esto página:

Cuando un miembro se especifica en la cláusula del eje, entonces ese miembro con sus ascendentes y descendientes se incluye en el espacio del subcubo para la subselección;Todos los miembros de hermanos no mencionados, en la cláusula del eje o corta, y sus descendientes se filtran desde el subespacio.De esta manera, el espacio de la selección externa se ha limitado a los miembros existentes en la cláusula del eje o la cláusula corta, con sus ascendentes y descendientes como se mencionó anteriormente.

Aquí hay un ejemplo:

SELECT { [Customer].[Customer Geography].[Country].&[Australia]
       , [Customer].[Customer Geography].[Country].&[United States]
       } ON 1
     ,  {[Measures].[Internet Sales Amount], [Measures].[Reseller Sales Amount]} ON 0
  FROM ( SELECT {[Customer].[Customer Geography].[Country].&[Australia]
                 , [Customer].[State-Province].&[WA]&[US]} ON 0
           FROM [Adventure Works]
        )

El resultado contendrá una fila para Autralia y otro para el United States.Con la subselección, restringí el valor de United Stated hacia Washington estado.

Una forma que encontré para hacerlo con Mondrian es el siguiente

WITH MEMBER [Measures].[Units Shipped2] AS
SUM
(
 {
  exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
 },[Measures].[Units Shipped]
)
MEMBER [Measures].[Warehouse Sales2] AS
SUM
(
 {
  exists([Store].[Store Country].currentmember.children,{[Store].[USA].[WA],[Store].[USA].[OR]})
 },[Measures].[Warehouse Sales]
)
SELECT 
{[Measures].[Units Shipped2],[Measures].[Warehouse Sales2]} ON 0,
NON EMPTY [Store].[Store Country].Members on 1
FROM [Warehouse]

No estoy seguro de si el filtrado se realizará en SQL como a continuación y dar un buen rendimiento o ejecutar localmente

select Country, sum(unit_shipped)
where state in ('WA','OR' )
group by Country 

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top