SQL - Manejo de fechas

 
Vista:

Manejo de fechas

Publicado por Carolina (26 intervenciones) el 08/06/2007 16:52:59
Hola, tengo una consulta, les explico un poco lo que estoy haciendo....

Tengo una tabla que tiene los sgtes campos:

fecha, local, cod_producto, cantidad

lo que debo hacer es a partir del la ultima fecha ingresada, debo descontar 8 semanas y para todos los registros anteriores a las 8 semanas ( mediante un group by cod_local, cod_producto) sacar el promedio de 'cantidad semanal es decir de lunes a domingo e insertar estos registros a otra tabla donde la fecha del local, cod_producto, avg(cantidad) debe ser la del dia lunes, todo esto es para reducir la cantidad de registros en la tabla.....

Si alguien me puede orientar con algun procedimiento o funcion se lo agradeceria bastante ya que esto debe hacerse de forma automatica...

Salu2
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:Manejo de fechas

Publicado por Isaías (5072 intervenciones) el 09/06/2007 00:01:15
¿Los SABADOS y DOMINGOS se quedan en la misma tabla?
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

RE:Manejo de fechas

Publicado por Carolina (26 intervenciones) el 11/06/2007 15:10:15
Si necesito sacar el promedio de lunes a domingo y todo queda en la misma tabla almacenado con la fecha del dia lunea que se tomo....

Saludos,
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

RE:Manejo de fechas

Publicado por Isaías (5072 intervenciones) el 11/06/2007 18:16:20
Caro

Dejame tratar de entender, tienes una tabla con una serie de registros, esta tabla, supongo, quieres deupurarla y solo tener en linea, las ultimas 8 semanas, ¿cierto?
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

RE:Manejo de fechas

Publicado por Carolina (26 intervenciones) el 11/06/2007 20:39:18
Asi es, el resto quiero pasarlo a otra tabla agrupado por cod_local, cod_producto semanalmente(de lunes a domingo) sacando el promedio 'cantidad'...eso es...no se si me entiendes??

Saludos
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

RE:Manejo de fechas

Publicado por Isaías (5072 intervenciones) el 11/06/2007 21:30:28
Mira, lo de BORRAR los registros que sean mas ANTIGUOS a 8 semanas, es muy sencillo, solo creas un TRIGGER en tu tabla que pase esos registros a tu otra tabla.

CREATE TRIGGER trg_MiTriggerBorrado ON TuTabla
FOR DELETE
AS
INSERT INTO TuOtraTabla
SELECT * FROM DELETED

Y creas un JOB que BORRE todos los registros menores a 8 semanas.

DELETE * FROM TuTabla WHERE tuColFecha <= DATEADD(wk, -8, GETDATE())

Hasta aqui, todo bien, lo que no me queda claro es el PROMEDIO que quieres calcular y para que.
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

RE:Manejo de fechas

Publicado por Carolina (26 intervenciones) el 11/06/2007 22:24:10
Es para reducir la cantidad de registros.... la tabla se compone de fecha, cod_local, cod_producto, cantidad, entonces deseo dejar abierto todos los registros a 8 semanas, el resto te doy un ejemplo:

fecha cod_local cod_producto cantidad

2006-10-23 E521 123 10
2006-10-24 E521 123 10
2006-10-25 E521 123 12
2006-10-26 E521 123 13
2006-10-27 E521 123 14
2006-10-28 E521 123 10
2006-10-29 E521 123 10
2006-10-30 E521 123 10
2006-10-23 E521 123 10
2006-10-23 E522 123 10
2006-10-24 E522 123 10
2006-10-25 E522 123 10
2006-10-26 E522 123 10
2006-10-27 E522 123 10
2006-10-28 E522 123 10
2006-10-29 E522 123 10

SACAR EL PROMEDIO DE CANTIDAD DE (LUNES A DOMINGO)MEDIANTE LA AGRUPACION POR COD_LOCAL Y COD_PRODUCTO TOMANDO PARA ESTO LA FECHA DEL DIA LUNES

fecha cod_local cod_producto cantidad
2006-10-23 00:00:00 E521 123 11,125
2006-10-23 00:00:00 E522 123 10

SALUDOS...
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

RE:Manejo de fechas

Publicado por Isaías (5072 intervenciones) el 12/06/2007 00:21:14
¿Para que quieres el PROMEDIO?, Esa es mi duda.
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

RE:Manejo de fechas

Publicado por Caro (26 intervenciones) el 12/06/2007 15:02:08
Por que necesito disminuir la cantidad de registros...ya que por cada dia son mas de 1.900.000 ,imagina lo que es abrir una tabla asi...demora demasiado hasta para hacer consultas..

Saludos,
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

RE:Manejo de fechas

Publicado por Isaías (5072 intervenciones) el 12/06/2007 19:07:09
Caro

Para existe el metodo de borrado por bloques, te muestro como.

IF EXISTS (SELECT ................................................)
BEGIN
SET ROWCOUNT 10000
DELETE TUTABLA WHERE....................
CONTINUE
END

Este metodo, te permite ir borrando registros en bloques, por ejemplo DIEZ MIL, podrias aumentar o disminuir este parametro.

¿Me explico?
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

RE:Manejo de fechas

Publicado por Caro (26 intervenciones) el 12/06/2007 20:30:17
Gracias Isaias, con lo que tenia hecho para insertar a otra tabla lo que te decia
( promedio de lunes a domingo) mas lo que acabas se enseñar acerca del borrado por bloques solucione el problema...

Salu2 y nuevamente gracias...
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

RE:Manejo de fechas

Publicado por Isaías (5072 intervenciones) el 12/06/2007 23:12:07
Perfecto !!!!

Saludos
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