none
Tomar Mes anterior en reporting services RRS feed

  • Pregunta

  • Hola a todos,

    Necesito saber como cojer el mes anterior en el reporting services

    Yo tengo unos informes lo cuales eleijo un rengo de fechas, es decir fecha inicio y fecha fin, para luego un indicador que venga del cubo, lo multiplique por los dias trascurridos entre esas dos fechas. Lo que necesitaria es el mismos indicador que filltres para el mes anterior, que hemos elejido dinamicamente. Para posterioemente pode hacer la diferencia

    Ejemplo para que se entienda mejor

    Yo eleijo en el informe: TO  1-01-2012 from 1-20-2012 a partir de este rango se hace parte del indicador

    Lo que necesitaria es que a partir del valor elejido anterior mente que varia al ser dinàmico, me coja TO 12-01-2011 FROM 12-20-2011.

    Luego necesito lo mismos para al trimestre anterior y año, supongo que sera muy parecido al mes.

    No se si se i quedo muy claro

    Saludos


    jueves, 2 de febrero de 2012 11:46

Todas las respuestas

  • Si lo quieres hacer desde reporting directamente no recuerdo la funcion correcta. Pero otra forma es que a la base le pases siempre tu fecha actual y cada conjunto de datos calcule el mes en el sql, entonces ahi podrias utilizar la funcion DATEADD la cual te permite sumar o restar unidades de tiempo.
    Lic. Andrés M. Aiello | DBA MS SQL - Oracle | http://aiellodba.blogspot.com | @AndresAiello
    jueves, 2 de febrero de 2012 12:57
  • Hola,

    Yo utilizo la DateDIff para hacer la diferneia ente las dos fechas. El problem es que esa fecha variara segun lo que pongan en el report, claro no siempre sera el mismo mes. Por eso creo que es hacerlo a nivel de report, a nivel de SQL es complicado ya que como vas a cojer un parametro que viene del report

     

    jueves, 2 de febrero de 2012 13:33
  • Hola.

    Comentas que obtienes un valor de un cubo. Dinos si tu pregunta es de SQL Server o de Analysis Services, ya que la solución que podemos proponerte no se parecerá en nada en un caso y en otro.

    Para concretarlo, pásanos la sentencia que usas. Puede solventarse con variables dentro de la consulta que se calculen a partir de la fecha seleccionada en el parámetro y el uso de dateadd para sumar (o más bien restar) meses o días.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    jueves, 2 de febrero de 2012 14:11
    Moderador
  • Lo cojo a partir de Analsiis Server.

     

    Yo he hecho un filtro con Range(included) para quie me coja una fecha inicio y una fecha fin. Posteriormente en los parametros en la pestaña Available Values, he cojido la opción Get Value from a query (la tercera) , en Dataset pongo el nombre del parametro, en Value Field parameter value y en Label Field ParameterCaptionIdented

    jueves, 2 de febrero de 2012 14:23
  • He estado dandole veultas hoy, la solución si puede ser con un DateADD, pero al utilizar-lo en un parametro me da error
    viernes, 3 de febrero de 2012 10:07
  • Hola qwalgrande

    Como he dicho antes he probado el DTEADD y me funciona para que te saque el mes anterior.

    Como puedo implmentarlo a un campo. Yo elijo dimamicamente dos fechas. En el report salen una seria una serie de inficadores, uno de ellos ahce este calculo:

    =Fields!TOTAL_YIELD.Value/((DateDiff("D",Parameters!FromBITIMEData.Label,Parameters!ToBITIMEData.Label)+1)*365)

    A mi lo que me interesaria es el mismo calcuilo anterior pero que me coja los valores del mes anterior, como puedeo implemetar eso, el DateADD si es la solución como seria la modificación del indicador

     

    viernes, 3 de febrero de 2012 10:28
  • Hola.

    Viendo ese código ya queda claro que tu cuestión es de Reporting Services. Muevo allí el hilo.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    domingo, 19 de febrero de 2012 12:06
    Moderador
  • Hola xavi_sdb,

    Si la modificación del indicador la sacas de hacer algún cálculo en tiempo de ejecución con la función dateadd y esto te es válido para tí, con dicha función te será suficiente.

    Ahora bien, si lo que necesitas es con obtener el dato del mes anterior que ya está calculado en tu cubo pero no que no puedes hacerlo en tiempo de ejecución por el motivo que sea (porque son muchos cáculos, porque implica otras historias, rendimiento, etc) deberáis de usar alguna función MDX que te de periodos anteriores y lo añadas como campo calculado en el informe.

    Te iba a buscar la referencia, pero aquí se tienes unos ejemplos: http://portalsql.com/index.php/2010/08/acumulado-ano-anterior-y-periodos-paralelos-en-mdx/

    Son con años, pero con cambiarlo a meses o trimestre te puede servir.

    Ya nos contarás que tal ;)

    Un Saludo


    Fran Díaz | {geeks.ms/blogs/fdiaz/} | {onobanet.es} | {secondnug.com}

    martes, 21 de febrero de 2012 20:08
    Moderador