tutorial studio services management descargar caracteristicas sql-server sql-server-2012 ssas mdx ssas-2012

sql-server - studio - sql server download



SSAS que trata con datos no vinculados (2)

Prefiero la seguridad de ISEMPTY :

CREATE MEMBER CURRENTCUBE.[Measures].[Forecast Accuracy Amount %] AS IIF( NOT ISEMPTY([Measures].[Sales Line Amount TCUSD SF]) OR NOT ISEMPTY([Measures].[F Amount]) , 1-ABS(DIVIDE( [Measures].[F Amount] - [Measures].[Sales Line Amount TCUSD SF] ,[Measures].[F Amount] ) ) ,NULL ), FORMAT_STRING = "Percent", VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = ''Sales Forecast'' ;

Un poco más complicado:

CREATE MEMBER CURRENTCUBE.[Measures].[Forecast Accuracy Amount %] AS IIF( ISEMPTY([Measures].[Sales Line Amount TCUSD SF]) AND ISEMPTY([Measures].[F Amount]) , NULL //<<if both are empty , IIF( NOT ISEMPTY([Measures].[Sales Line Amount TCUSD SF]) OR NOT ISEMPTY([Measures].[F Amount]) ,1-ABS( DIVIDE( [Measures].[F Amount] - [Measures].[Sales Line Amount TCUSD SF] ,[Measures].[F Amount] ) ) ,0 ) ), FORMAT_STRING = "Percent", VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = ''Sales Forecast'' ;

Estoy tratando de comparar los datos de previsión con los datos de ventas en un cubo. A veces tenemos un pronóstico sin venta real, a veces tenemos una venta sin previsión. ¿Cómo se muestra 0% si uno u otro no existe? Este es mi código actual ... Las líneas verdes están bien porque muestra 0% donde una de las cantidades no existe. Quiero que haga lo mismo con los círculos rojos.

CREATE MEMBER CURRENTCUBE.[Measures].[Forecast Accuracy Amount %] AS IIF([Measures].[Sales Line Amount TCUSD SF] <> 0 OR [Measures].[F Amount] <> 0, 1-ABS(DIVIDE(([Measures].[F Amount] - [Measures].[Sales Line Amount TCUSD SF]) , [Measures].[F Amount])), NULL), FORMAT_STRING = "Percent", VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = ''Sales Forecast'' ;

EDITAR - si ambos valores de medición no existen, ambos serían nulos y no se mostrarían. Así que no me gustaría que el porcentaje se muestre y solo quiero hacer el cálculo si una de las cantidades no es 0. La precisión del pronóstico no debe mostrar el 100% si la cantidad f es 0 y hay una venta como se muestra en el último img ... esto es lo último que corregir ...


Creo que la respuesta de theq hizo la mayor parte. Lo único que creo que necesitaba era comprobar si ambos valores son más de cero para devolver una puntuación, y sí, funcionará con cualquier dimensión que permita su modelo de SSAS. Algo como lo siguiente debería darle lo que necesita:

CREATE MEMBER CURRENTCUBE.[Measures].[Forecast Accuracy Amount %] AS IIF( ISEMPTY([Measures].[Sales Line Amount TCUSD SF]) AND ISEMPTY([Measures].[F Amount]) , NULL //<<if both are empty , IIF( //Getting here means, at minimum, one of the measures is not empty // Calculate the score only if both values are non equal to zero otherwise default to zero [Measures].[F Amount] <> 0 AND [Measures].[Sales Line Amount TCUSD SF] <>0 ,1-ABS( DIVIDE( [Measures].[F Amount] - [Measures].[Sales Line Amount TCUSD SF] ,[Measures].[F Amount] ) ) ,0 ) ), FORMAT_STRING = "Percent", VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = ''Sales Forecast'' ;