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

[SOLUCIONADO] consulta group by

Estas en el tema de consulta group by en el foro de Mysql en Foros del Web. Hola comunidad tengo el siguiente problema, tengo las siguientes tablas: productos id codigo nombre existencia tipo marca 12 4N - 0636 Retenedor 1 1 1 ...
  #1 (permalink)  
Antiguo 25/01/2013, 22:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 1
consulta group by

Hola comunidad tengo el siguiente problema, tengo las siguientes tablas:

productos
id codigo nombre existencia tipo marca
12 4N - 0636 Retenedor 1 1 1
13 5P - 0547 Retenedor 1 1 1
14 4N - 1584 Retenedor 1 1 1

precioventa
id idprod tipo fecha precio
48 14 1 2013-01-11 00:00:00 35.073333333
47 13 1 2013-01-11 00:00:00 34.243333333
75 13 1 2013-01-15 12:05:30 13
46 12 1 2013-01-11 00:00:00 33.413333333
74 12 1 2013-01-14 12:05:03 10

quiero recuperar los registros de las ultimas fechas con sus precios respectivo, y que sean por nombre, al final debo de tener los siguientes campos, código de producto, nombre, fecha y precio.

lo extraño es que tengo esta consulta

Código MySQL:
Ver original
  1. precioventa.fecha,
  2. precioventa.precio,
  3. precioventa.idProd
  4. precioventa
  5.  
  6. precioventa.idProd
  7. precioventa.fecha DESC

y el resultado que obtengo es este
fecha precio idproducto
2013-01-11 00:00:00 33.413333333 12
2013-01-11 00:00:00 4.243333333 13
2013-01-11 00:00:00 35.073333333 14

done el precio no coincide con el precio que debe de ser.

que estare haciendo mal...

Última edición por joseluisr85; 25/01/2013 a las 23:15 Razón: SQL sin etiquetar...
  #2 (permalink)  
Antiguo 26/01/2013, 12:01
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: consulta group by

Para obtener campos de la tabla productos, debe aparecer en la consulta:

Select
productos.nombre,
precioventa.precio
from
productos,
precioventa
where
precioventa.idprod=producto.id
order by precioventa.fecha desc

El group by, en este caso, creo que no te sirve de nada.

Revisa que haya identificado bien la PK y la FK en la query que te paso y amplíala con los campos que necesites.

Saludos.
  #3 (permalink)  
Antiguo 27/01/2013, 22:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: consulta group by

No me resulto.....

Cita:
Iniciado por ComprasDesdeCasa Ver Mensaje
Para obtener campos de la tabla productos, debe aparecer en la consulta:

Select
productos.nombre,
precioventa.precio
from
productos,
precioventa
where
precioventa.idprod=producto.id
order by precioventa.fecha desc

El group by, en este caso, creo que no te sirve de nada.

Revisa que haya identificado bien la PK y la FK en la query que te paso y amplíala con los campos que necesites.

Saludos.
  #4 (permalink)  
Antiguo 27/01/2013, 23:40
Avatar de Meliseo  
Fecha de Ingreso: enero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: consulta group by

proba con este codigo
Código MySQL:
Ver original
  1. productos.codigo,
  2. productos.nombre,
  3. precioventa.fecha,
  4. precioventa.precio
  5. productos, precioventa
  6. precioventa.idprod=productos.id
  7. order by precioventa.fecha desc

con eso q los precios no coinciden, el problema no esta en la consulta; en todo caso el problema estaria en la tabla precioventa

Última edición por gnzsoloyo; 28/01/2013 a las 10:47
  #5 (permalink)  
Antiguo 28/01/2013, 05:23
 
Fecha de Ingreso: octubre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: consulta group by

Gracias Meliseo, si con la consulta proporcionada hasta ahi estoy bn.... excelente.... pero necesito tener... del listado que genera la consulta.... la ultima fecha generada por la ultima venta de acuerdo al tipo de producto, es decir, el listado de productos vendidos a la ultima fecha, que en la consulta que me brindaste son los primeros tres registros...y como tiene que ser dinamico... no puedo colocar un LIMIT... de nuevo gracias por la colaboracion
  #6 (permalink)  
Antiguo 28/01/2013, 10:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: consulta group by

ya encontré la solución!....

Código SQL:
Ver original
  1. SELECT MAX(precioventa.fecha), precioventa.productos_id, precioventa.precio
  2. FROM precioventa
  3. GROUP BY precioventa.productos_id


Gracias a los miembros de la comunidad que respondieron con el interés de ayudarme..

Última edición por gnzsoloyo; 28/01/2013 a las 10:46
  #7 (permalink)  
Antiguo 28/01/2013, 11:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: consulta group by

parte de la solución..

SELECT
productos.id,
productos.Codigo,
productos.Nombre,
precioventa.fecha,
precioventa.precio
FROM
productos
INNER JOIN precioventa ON productos.id = precioventa.productos_id
WHERE
productos.Nombre LIKE '%ret%' and precioventa.fecha IN (select max(precioventa.fecha)
from precioventa
group by precioventa.productos_id)

Etiquetas: campos, group, registros, select, 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 09:01.