Usuario
Tomar Mes anterior en reporting services

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
- Editado Alberto López Grande (qwalgrande)Moderator jueves, 2 de febrero de 2012 14:07 Título
- Cambiado Alberto López Grande (qwalgrande)Moderator domingo, 19 de febrero de 2012 12:07 Es una pregunta de Reporting Services (De:SQL Server)
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 -
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
-
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 -
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
-
-
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
-
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 -
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}