SQL Server - pivot pero con fecha movible

 
Vista:

pivot pero con fecha movible

Publicado por kinetic_brain (67 intervenciones) el 09/06/2010 00:02:59
Tengo una duda estoy construyendo una tabla pivot, donde muestro los periodos en la cabecera de la tabla de la fecha actual y 4 meses hacia atras.

primero obtengo de la tabla 1 la tabla ANALIZAR donde a la fecha que esta en formato yyyymmdd le hago un left(fecha,6) obtengo 201006 y ha esta tabla (ANALIZAR) le corro la siguiente query.

SELECT P1.*, cast((P1.[ACTUAL-3]+P1.[ACTUAL-2]+P1.[ACTUAL-1]+P1.[ACTUAL]) as int)AS AÑO_TOTAL
from (select distinct USUARIO,TELEFONO,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-120, 112),6) THEN P.VALOR_REB ELSE 0 END)AS [ACTUAL-3] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-90, 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL-2] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-60, 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL-1] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE(), 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL]
FROM ANALIZAR P
group by P.USUARIO,P.TELEFONO) as P1
order by USUARIO

Consulta como puedo modificar la query para que despues del WHEN solo tome los meses, yo lo tengo asi
left(CONVERT(CHAR(8), GETDATE()-30, 112),6) ---> esto me indicaria la fecha desde hoy y 4 meses asi atras, el problema es que no es exacta ya que me deja registros fuera porque me esta tomando por ejemplo del día 8 de Junio 30 días hacia atras, no cubriendo la totalidad de Mayo. como puedo trabajar la fecha. Por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

pivot pero con fecha movible

Publicado por kinetic_brain (67 intervenciones) el 09/06/2010 00:02:59
Tengo una duda estoy construyendo una tabla pivot, donde muestro los periodos en la cabecera de la tabla de la fecha actual y 4 meses hacia atras.

primero obtengo de la tabla 1 la tabla ANALIZAR donde a la fecha que esta en formato yyyymmdd le hago un left(fecha,6) obtengo 201006 y ha esta tabla (ANALIZAR) le corro la siguiente query.

SELECT P1.*, cast((P1.[ACTUAL-3]+P1.[ACTUAL-2]+P1.[ACTUAL-1]+P1.[ACTUAL]) as int)AS AÑO_TOTAL
from (select distinct USUARIO,TELEFONO,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-120, 112),6) THEN P.VALOR_REB ELSE 0 END)AS [ACTUAL-3] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-90, 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL-2] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-60, 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL-1] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE(), 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL]
FROM ANALIZAR P
group by P.USUARIO,P.TELEFONO) as P1
order by USUARIO

Consulta como puedo modificar la query para que despues del WHEN solo tome los meses, yo lo tengo asi
left(CONVERT(CHAR(8), GETDATE()-30, 112),6) ---> esto me indicaria la fecha desde hoy y 4 meses asi atras, el problema es que no es exacta ya que me deja registros fuera porque me esta tomando por ejemplo del día 8 de Junio 30 días hacia atras, no cubriendo la totalidad de Mayo. como puedo trabajar la fecha. Por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

pivot pero con fecha movible

Publicado por kinetic_brain (67 intervenciones) el 09/06/2010 00:02:59
Tengo una duda estoy construyendo una tabla pivot, donde muestro los periodos en la cabecera de la tabla de la fecha actual y 4 meses hacia atras.

primero obtengo de la tabla 1 la tabla ANALIZAR donde a la fecha que esta en formato yyyymmdd le hago un left(fecha,6) obtengo 201006 y ha esta tabla (ANALIZAR) le corro la siguiente query.

SELECT P1.*, cast((P1.[ACTUAL-3]+P1.[ACTUAL-2]+P1.[ACTUAL-1]+P1.[ACTUAL]) as int)AS AÑO_TOTAL
from (select distinct USUARIO,TELEFONO,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-120, 112),6) THEN P.VALOR_REB ELSE 0 END)AS [ACTUAL-3] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-90, 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL-2] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE()-60, 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL-1] ,
SUM(CASE P.FECHA WHEN left(CONVERT(CHAR(8), GETDATE(), 112),6) THEN P.VALOR_REB ELSE 0 END) AS [ACTUAL]
FROM ANALIZAR P
group by P.USUARIO,P.TELEFONO) as P1
order by USUARIO

Consulta como puedo modificar la query para que despues del WHEN solo tome los meses, yo lo tengo asi
left(CONVERT(CHAR(8), GETDATE()-30, 112),6) ---> esto me indicaria la fecha desde hoy y 4 meses asi atras, el problema es que no es exacta ya que me deja registros fuera porque me esta tomando por ejemplo del día 8 de Junio 30 días hacia atras, no cubriendo la totalidad de Mayo. como puedo trabajar la fecha. Por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pivot pero con fecha movible

Publicado por kinetic_brain (67 intervenciones) el 09/06/2010 00:05:22
Como elimino un post se ha repetido se me pego internet y quedo 3 veces disculpen. eliminen dos post esta repetido por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar