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

Seleccionar los ultimos registros de cada registro

Estas en el tema de Seleccionar los ultimos registros de cada registro en el foro de Bases de Datos General en Foros del Web. Hola, necesito hacer un select en donde me devuelba la ultima compra de cada producto ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original CodArticulo     ...
  #1 (permalink)  
Antiguo 27/07/2012, 23:36
 
Fecha de Ingreso: marzo-2007
Mensajes: 76
Antigüedad: 17 años, 1 mes
Puntos: 0
Seleccionar los ultimos registros de cada registro

Hola, necesito hacer un select en donde me devuelba la ultima compra de cada producto ejemplo:

Código SQL:
Ver original
  1. CodArticulo     fechaCompra      CodProveedor
  2. 0001                   01/01/2012         555
  3. 0058                   01/11/2012         870
  4. 0007                   01/02/2012         230
  5. 0007                   01/10/2012         150
  6. 0001                   01/12/2012         989
  7. 0058                   01/10/2012         788
  8. 0001                   02/10/2012         102

de manera que me salgan solo las ultimas compras de cada producto:
Código SQL:
Ver original
  1. CodArticulo     fechaCompra      CodProveedor
  2. 0001                   01/12/2012         989
  3. 0007                   01/10/2012         150
  4. 0058                   01/11/2012         870

lo he intentado con max(fechacompra) o con un distinct pero no me funciona si alguien me pudiera ayudar le agradecia mucho.

se me olvida mencionar que tengo dos tablas desde donde obtengo la informacion

Compras y decompras

compras: campos: numcompra, fecha, codproveedor
decompras campos: numcompra, codarticulo.

Última edición por gnzsoloyo; 28/07/2012 a las 08:03 Razón: Codigo posteado mal estructurado.
  #2 (permalink)  
Antiguo 28/07/2012, 08:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar los ultimos registros de cada registro

¿Y probaste usando un HAVING?
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM ...
  3. WHERE ...
  4. HAVING fechacompra = MAX(fechacompra);

Por otro lado, hay diferencias de sintaxis en algunos DBMS, por lo que es conveniente que nos digas qué estás usando (EL DBMS, no el lenguaje de programación);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/07/2012, 16:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 76
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Seleccionar los ultimos registros de cada registro

realice lo siguiente pero no funciona quedo igual, ya que me parece que como se agrupa por NumCompra entonces siempre me va a mostrar articulos repetidos y no la ultima compra de cada producto.

Código PHP:
Ver original
  1. SELECT MaCompras.NumCompra, MaCompras.FecCompra, MaCompras.CodProveedor, DeCompras.CodArticulo
  2. FROM MaCompras INNER JOIN DeCompras ON MaCompras.NumCompra = DeCompras.NumCompra
  3.  
  4. WHERE Format(FecCompra, 'yyyymmdd') between 20110301 and 20110330
  5. GROUP BY  MaCompras.NumCompra, MaCompras.FecCompra, MaCompras.CodProveedor, DeCompras.CodArticulo
  6.  
  7. HAVING FecCompra = MAX(FecCompra)


no estoy muy seguro a que te refieres con DBMS, te puedo decir que estoy realizando esto mediante una consulta en una base de datos de access 97
  #4 (permalink)  
Antiguo 28/07/2012, 18:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar los ultimos registros de cada registro

DBMS es Data Base Management System, o Sistema de Gestión de Bases de Datos.
Es lo que son MS SQL Server, Oracle DB, DB2, MySQL, Postgre SQL, etc. Access no lo es. Es un admistrador de tablas con recursos de SQL embebidos, una aplicación de oficinas, pero no es base de datos. Lo poco de SQL que puede ejecutar es ANSI-SQL, y muy limitadas capacidades. Muchas de las cosas que te aconsejaríamos no te funcionarán.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 28/07/2012 a las 19:05
  #5 (permalink)  
Antiguo 29/07/2012, 11:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 76
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Seleccionar los ultimos registros de cada registro

A ya osea el manejador de base de datos, me lo hubieras dicho en español jaja... es como el tema yo lo postee en "temas de access" pense que era odvio que era access, por otro lado no estoy de acuerdo en decir que access no es una base de datos, yo no soy programador pero hace tiempo que trabajo para una empresa que desarrolla software y este trabaja con varios tipos de bases de datos, access, mysql, sql server y sqlite, y te puedo asegurar que hacen lo mismo las sintaxis suelen variar un poco de una base de datos a otras y access tiene limitaciones y desventajas pero ya son como de capacidad y velocidad en comparacion con sql server y mysql. yo se que lo que necesito si se puede hacer. ahora si alguien le interesa de verdad ayudar cualquier aporte sera altamente agredecido.

Etiquetas: access
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 11:35.