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

Consulta SQL

Estas en el tema de Consulta SQL en el foro de Mysql en Foros del Web. Hola a todos/as Tengo un problema con una consulta. Les explico el problema. Tengo dos tablas; TipoProducto (Codigotp, CodFabricante, Descripcion, Nombre) Producto (CodPieza, CodTipo, PrecioVentaPublico, ...
  #1 (permalink)  
Antiguo 18/04/2014, 07:55
 
Fecha de Ingreso: enero-2013
Mensajes: 54
Antigüedad: 11 años, 2 meses
Puntos: 0
Consulta SQL

Hola a todos/as

Tengo un problema con una consulta. Les explico el problema.
Tengo dos tablas;

TipoProducto (Codigotp, CodFabricante, Descripcion, Nombre)
Producto (CodPieza, CodTipo, PrecioVentaPublico, Existencia, FechaAlta)

Por cada Tipo de Producto se pueden crear varios Productos con distinata fecha de alta. Quiero obtener de todos los productos con el mismo CodTipo el que tenga la fecha más reciente (última versión). Hata ahora he hecho esto;
Código SQL:
Ver original
  1. SELECT FechaAlta, TipoProducto.Nombre, Existencias FROM TipoProducto, Producto
  2. WHERE TipoProducto.Codigotp = Producto.CodTipo
  3. AND FechaAlta IN (SELECT MAX(FechaAlta) FROM Producto GROUP BY CodTipo);

Pero no funciona, me devuelve todas las filas. Alguien puede ayudarme?.

Última edición por gnzsoloyo; 18/04/2014 a las 10:09
  #2 (permalink)  
Antiguo 18/04/2014, 10:17
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, 4 meses
Puntos: 2658
Respuesta: Consulta SQL

Cita:
Quiero obtener de todos los productos con el mismo CodTipo el que tenga la fecha más reciente (última versión).
En realidad, la consulta cumple eso, aunque yo lo haría así:

Código SQL:
Ver original
  1. SELECT P.CodTipo, Existencias, FechaAlta
  2. FROM Producto  P INNER JOIN TipoProducto T ON P.CodTipo = T.Codigotp
  3. HAVING FechaAlta = MAX(FechaAlta);

Lo que te puedo decir es que esas tablas resultan un poco extrañas, porque normalmente un tipo de producto es una tabla dependiente del producto, y no al revés, como parece eso.

Entendamos: Un Auto es un producto. Un tipo de producto es Deportivo, Cupé, Urbano, Diesel, Monovolumen, son tipos de prodcuto.
Pero por lo que describes no parece que hayas hecho esa concpetualización, así que no termino de ver cómo es el resultado que tienes, ni que datos contienen las tablas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: select, sql, tabla
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 07:51.