Principales respuestas
consultar el primer dato

Pregunta
-
Buenos días
Dentro de mi cubo tengo una dimensión fecha y una tabla de hechos de presupuesto, el presupuesto es asignado para todo el mes por lo tanto la fecha esta dada para el primer día del mes, sin embargo es necesario realizar cálculos para cada diez días, en la dimensión fecha cree la jerarquía década (Año, mes, década), pero como el presupuesto se asigna por mes, cuando hago la consulta la década 1 tiene todo el presupuesto, la década 2 y 3 no tienen nada, como hago para poder hacer el calculo de la década dos es decir seria el presupuesto del mes divido 3 y luego multiplicado por dos y así la asignación de cada decada
Muchas gracias por su ayuda
JAZ
Respuestas
-
Un scope no se puede anidar dentro de una medida calculada, es una instrucción independiente para sobreescribir el valor de una medida. He hecho algunas correcciones en tu codigo y creo que lo que deberías escribir en el script del cubo es esto:
FREEZE([Dim Date].[FISCAL YEAR-MONTH D].[MONTH].members , [Measures].[BUDGET AMOUNT]);
SCOPE([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].members , [Measures].[BUDGET AMOUNT]); THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].currentmember.parent,[Measures].[BUDGET AMOUNT])/3; END SCOPE;
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 18 de abril de 2014 16:44
-
Cierto.. la asignación del miembro debe quedar como sigue
THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].currentmember.parent,[Measures].[BUDGET AMOUNT])/3;
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
- Marcado como respuesta JAZ17 martes, 22 de abril de 2014 17:52
Todas las respuestas
-
Hola @JAZ,
Tendrás que sobre escribir el valor de cada decena con el valor del mes dividido entre 3 (esto suponiendo que los meses sean comerciales, si no tendrás fracciones de decenas)
Algo así (a mano alzada):
scope([Fecha].[Calendario].[Decena].members , [Measures].[Presupuesto]); this=sum([Fecha].[Calendario].[Decena].currentmember.parent,[Measures].[Presupuesto])/3; end scope;
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
- Editado Víctor M lunes, 14 de abril de 2014 15:49
-
Hola Victor,
muchas gracias por tu respuesta, pero como soy nueva en esto tengo una duda, este calculo lo estoy haciendo en un miembro calculado ,
CREATE MEMBER CURRENTCUBE.[Measures].[CED_BUDGET_AMOUNT]
AS
SCOPE([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].members, [Measures].[BUDGET AMOUNT])
THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].currentmember.parent,([Measures].[BUDGET AMOUNT]/3));
END SCOPE;,
pero me dice que The syntax for Scope is incorrect, segun lo que he leido no esposible utilizar el scope en el miembro calculado, como puedo escribir esto de otra manera?
Gracias
JAZ
-
Un scope no se puede anidar dentro de una medida calculada, es una instrucción independiente para sobreescribir el valor de una medida. He hecho algunas correcciones en tu codigo y creo que lo que deberías escribir en el script del cubo es esto:
FREEZE([Dim Date].[FISCAL YEAR-MONTH D].[MONTH].members , [Measures].[BUDGET AMOUNT]);
SCOPE([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].members , [Measures].[BUDGET AMOUNT]); THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].currentmember.parent,[Measures].[BUDGET AMOUNT])/3; END SCOPE;
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 18 de abril de 2014 16:44
-
Hola,
no me funciona, dice The syntax for FREEZE is incorrect
CREATE MEMBER CURRENTCUBE.[Measures].[CED_BUDGET_AMOUNT]
AS FREEZE([Dim Date].[FISCAL YEAR-MONTH D].[FISCAL MONTH NAME].members
, [Measures].[BUDGET AMOUNT]);
SCOPE([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].members
, [Measures].[BUDGET AMOUNT]);
THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].[DECADE OF MONTH].currentmember.parent,[Measures].[BUDGET AMOUNT])/3;
END SCOPE;,
FORMAT_STRING = "Currency",
VISIBLE = 1 , DISPLAY_FOLDER = 'VALORES' ;JAZ
-
Es porque estas creando una medida calculada tienes que poner solo el código que te puse arriba, sin el CREATE MEMBER CURRENTCUBE....
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
-
-
Hola @Jaz
No hace falta que añadas una medida calculada.
Solo te hace falta hacer el scope, que va a sobre escribir el valor de la medida [Measures].[BUDGET AMOUNT] para los miembros del nivel decena de tu jerarquía de tiempo. Cuando hagas las consultas solo tienes que traerte la medida y la jerarquía.
Me da la sensación de que no sabes que es un scope y por tanto estas teniendo problemas para añadirlo al script MDX de tu cubo. Si es así dilo y te indicamos como se hace http://technet.microsoft.com/en-us/library/ms145515.aspx
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
-
-
Hola Victor,
Finalmente y después de mucho leer ya entiendo el scope sin embargo no me funciona, si dejo la funcion tal cual me dice ... The CURRENTMEMBER function expects a hierarchy expression for the 1 argument.
lo cambie dejando
THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].currentmember,[Measures].[BUDGET AMOUNT]/3,
pero solamente me hace la asignacion del presupuesto para la primera decada faltan las otras dos
Saludos
JAZ
-
Cierto.. la asignación del miembro debe quedar como sigue
THIS= SUM([Dim Date].[FISCAL YEAR-MONTH D].currentmember.parent,[Measures].[BUDGET AMOUNT])/3;
Víctor M. García Sánchez. Hope this help. Please vote if you find this posting was helpful. if this is an answer to your question, please mark it. http://bifase.blogspot.com | http://twitter.com/atharky
- Marcado como respuesta JAZ17 martes, 22 de abril de 2014 17:52