Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Query de Ultima fecha de actualizacion

Estas en el tema de Query de Ultima fecha de actualizacion en el foro de SQL Server en Foros del Web. buenos días antes que nada pues miren que estoy levantando un proyecto el cual necesito terminar un reporte que me tiene bien preocupado ya de ...
  #1 (permalink)  
Antiguo 10/10/2012, 08:03
 
Fecha de Ingreso: octubre-2012
Ubicación: Honduras
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta Query de Ultima fecha de actualizacion

buenos días antes que nada

pues miren que estoy levantando un proyecto el cual necesito terminar un reporte que me tiene bien preocupado ya de vi de verlo entregado


lo que intento hacer es lo siguiente:

tengo una tabla llamada ORDR = tabla de ordenes de ventas

de esa tabla tengo que sacar: numero_documento, Fecha_Documeto, cliente, id_articulo, nombre_articulo, almacen, precio_articulo,

la consulta se hara por fecha de documentos: pero tengo que comparar de cada articulo el Stock (" Existencia en Almacen ") segun la fecha que fue creada el documento para esto me encontre una tabla que se llama


AITW = Actualizaciones de Stock en los Almacenes de ahy saco el Stock y la fecha de como estava el Stock en ese momento

Ejemplo del Problema:

tengo una orden de compra que se creo el 10/02/2011

compraron 'Pastilla de freno' = esto lo saco de la tabla de ordenes de ventas

entonces en la Tabla AITW = me aparece

que las pastillas de freno se actualizaron asi:


Fecha: 01/01/2011 en Stock 0
fecha : 01/02/2011 en Stock 5
fecha : 05/02/2011 en Stock 9
fecha : 08/02/2011 en Stock 8----------------> Fecha Ideal
fecha : 13/02/2011 en Stock 3
fecha : 27/02/2011 en Stock 0
fecha : 01/03/2011 en Stock 0
fecha : 06/03/2011 en Stock 4
fecha : 28/03/2011 en Stock 7
fecha : 02/02/2011 en Stock 0

entonces el cogido tiene que comparar la ultima o igual fecha de actualización antes o el mismo dia de que fue hecha la compra seria la fecha

fecha : 08/02/2011 en Stock 8----------------> Fecha Ideal


este es mi problema plisss ayúdeme, de antemano les agradezco su colaboración
  #2 (permalink)  
Antiguo 10/10/2012, 08:42
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Query de Ultima fecha de actualizacion

La consulta debe ser mas o menos asi:
Código SQL:
Ver original
  1. SELECT  *
  2. FROM    ORDR T1
  3. OUTER Apply (SELECT Top 1 *
  4.     FROM    AITW T2
  5.     WHERE   T2.ID=T1.ID
  6.         AND T2.Fecha<=T1.Fecha
  7.     ORDER BY T2.Fecha DESC) T2;
ID es el nombre o el número del producto que aparece en ambas tablas,
y Fecha es el nombre de la columna de fecha.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 10/10/2012, 11:05
 
Fecha de Ingreso: octubre-2012
Ubicación: Honduras
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Query de Ultima fecha de actualizacion

hola GeriReshef primero que nada agradecerte me distes la solución al problema eso era lo que andaba buscando, pero nada mas un detalle

como puedo hacer para que me tome en cuenta los resultados null? con el codigo que me distes todo funciona nada mas que no me captura los resultados null quisiera tomar esos resultados ya que antes de actualizar un producto ellos tienen una cantidad pero todavía no hay fecha de actualización quisiera me ayudaras para no distorsionar la solución que me distes .



De antemano Gracias por tu aporte
  #4 (permalink)  
Antiguo 11/10/2012, 08:47
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Query de Ultima fecha de actualizacion

No estoy seguro que entendí el problema:

La consulta recupera todas las filas de la tabla ORDR.
Con cada fila muestra la ultima fila anterior de la tabla AITW (si existe una)
o una fila de nulos (si no existe).

Que es lo que te falta o que te parece que no funciona bien?
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #5 (permalink)  
Antiguo 11/10/2012, 18:50
 
Fecha de Ingreso: octubre-2012
Ubicación: Honduras
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Query de Ultima fecha de actualizacion

buenas GeriReshef mis disculpas si no me explique de la mejor manera

el codigo que usted me paso me parece excelente y me funciono para los articulos que tienen actualización llamemos los a los que mas se venden son los que mas se actualizan cuando un articulo,

el problema que tengo ahora es que no me jala los articulos que tienen actualizacion null o nunca se han actualizado ya que desde la primera compra no hemos comprado mas podre un ejemplo: suponiendo que


tengo una orden de compra que se creo el 10/02/2011

compraron 'Pastilla de freno' = esto lo saco de la tabla de ordenes de ventas

entonces en la Tabla AITW = me aparece

que las pastillas de freno se actualizaron asi:


null en Stock 86-------------> Fecha Ideal
fecha : 13/02/2011 en Stock 3
fecha : 27/02/2011 en Stock 0
fecha : 01/03/2011 en Stock 0
fecha : 06/03/2011 en Stock 4
fecha : 28/03/2011 en Stock 7
fecha : 02/02/2011 en Stock 0

estos valores aparecen sin fecha de actualización xq son artículos que se venden poco o nada entonces no son muy frecuentas en compra.

me gustaría saber como agregarle al código que me tome esos valores null o sin fecha de actualización

espero darme a entender y asi me pueda ayudar de antemano gracias por su valioso aporte

saludos cordiales y exitos
  #6 (permalink)  
Antiguo 12/10/2012, 01:46
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Query de Ultima fecha de actualizacion

He intentado y me funcionó correctamente:
Código SQL:
Ver original
  1. CREATE TABLE Ordr (ID INT, Fecha DateTime);
  2. GO
  3.  
  4. INSERT INTO Ordr SELECT 1,'20120101'; --2 antes
  5. INSERT INTO Ordr SELECT 2,'20120101'; --1 antes, 1 despues
  6. INSERT INTO Ordr SELECT 3,'20120101'; --2 despues
  7. INSERT INTO Ordr SELECT 4,'20120101'; --0
  8.  
  9. CREATE TABLE AITW (ID INT, Fecha DateTime);
  10. GO
  11.  
  12. INSERT INTO AITW SELECT 1,'20110101';
  13. INSERT INTO AITW SELECT 1,'20120101';
  14. INSERT INTO AITW SELECT 2,'20110101';
  15. INSERT INTO AITW SELECT 2,'20130101';
  16. INSERT INTO AITW SELECT 3,'20130101';
  17. INSERT INTO AITW SELECT 3,'20140101';
  18.  
  19. SELECT  *
  20. FROM    ORDR T1
  21. OUTER Apply (SELECT  Top 1 *
  22.         FROM    AITW T2
  23.         WHERE   T2.ID=T1.ID
  24.                 AND T2.Fecha<=T1.Fecha
  25.         ORDER BY T2.Fecha DESC) T21;
  26.  
  27. /*
  28. ID  Fecha                   ID      Fecha
  29. 1   2012-01-01 00:00:00.000 1       2012-01-01 00:00:00.000
  30. 2   2012-01-01 00:00:00.000 2       2011-01-01 00:00:00.000
  31. 3   2012-01-01 00:00:00.000 NULL    NULL
  32. 4   2012-01-01 00:00:00.000 NULL    NULL
  33. */
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: query
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:12.