Hacer agrupación de datos y obtener el máximo de un campo
Publicado por Autor (1 intervención) el 07/08/2019 01:07:42
Estimados, tengo dudas de cómo hacer lo siguiente. Tengo dos tablas, de las cuales me interesaría saber cuál es el valor máximo de un campo, pero que me devuelva el valor que tiene un campo asociado.
SELECT p.nombre, p.apellido, p.codigo, MAX(i.precio)
FROM tabla1 p
INNER JOIN tabla2 i
ON p.codigo=i.codigo
GROUP BY p.nombre,p.apellido,p.codigo
Suponiendo que agrupo NOMBRE y APELLIDO, tengo varios CODIGO con sus respectivos PRECIOS de la mano. La idea es que me devuelva el valor máximo de PRECIO, y a su vez, el dato del campo CODIGO que está asociado.
Por ejemplo, si es
Tabla 1:
NOMBRE, APELLIDO, CODIGO
Juan, Dold, 1
Juan, Dold,2
Tabla2:
CODIGO, PRECIO
1, 500
1, 200
2, 600
2, 300
La consulta me debería devolver sólo a:
Juan, Dold, 2, 600
Pero en cambio me devuelve:
Juan, Dold, 2, 600
Juan, Dold, 1, 500
Si ejecutó esa sentencia, me devuelven todos los valores de CODIGO, y si quito a CODIGO de la agrupación, me dice que no está en ninguna agrupación o función de agregado.
Como podría hacer?
Saludos.
SELECT p.nombre, p.apellido, p.codigo, MAX(i.precio)
FROM tabla1 p
INNER JOIN tabla2 i
ON p.codigo=i.codigo
GROUP BY p.nombre,p.apellido,p.codigo
Suponiendo que agrupo NOMBRE y APELLIDO, tengo varios CODIGO con sus respectivos PRECIOS de la mano. La idea es que me devuelva el valor máximo de PRECIO, y a su vez, el dato del campo CODIGO que está asociado.
Por ejemplo, si es
Tabla 1:
NOMBRE, APELLIDO, CODIGO
Juan, Dold, 1
Juan, Dold,2
Tabla2:
CODIGO, PRECIO
1, 500
1, 200
2, 600
2, 300
La consulta me debería devolver sólo a:
Juan, Dold, 2, 600
Pero en cambio me devuelve:
Juan, Dold, 2, 600
Juan, Dold, 1, 500
Si ejecutó esa sentencia, me devuelven todos los valores de CODIGO, y si quito a CODIGO de la agrupación, me dice que no está en ninguna agrupación o función de agregado.
Como podría hacer?
Saludos.
Valora esta pregunta


0