Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/03/2014, 11:52
Avatar de majoo
majoo
 
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Consulta para seleccionar el registro mayor de cada GRUPO. Uno por grupo.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Usando MAX() y GROUP BY, como en cualquier otro DBMS...
Son consultas estandar. De manual... Las encontrará en cualquier tutorial.
SELECT *,MAX(cant) FROM tabla_ppal GROUP BY id_empresa

Resultado de la consulta:
id_empresa cant
A 78
B 10
C 19

Ese problema de arriba ¿se soluciona asi verdad?, ahora supongamos que tengo esa misma tabla, es la principal, aparte tambien tengo una tabla detalle donde guardo un monton de registros.

Ojala me explique bien, pero quiero hacer una consulta de la tabla detalle, que me traiga los registros detalle pero solo de aquellos registros que en la tabla principal son los maximo en su cantidad. Por ejemplo:

SELECT * FROM tabla_detalle td
INNER JOIN
(SELECT *,MAX(cant) FROM tabla_ppal GROUP BY id_empresa) tp ON td.id_poder=tp.id_poder;

Resultado de la consulta
id_empresa cant
A 78 <-- dos registros de esta
B 10 (cero de esta)
C 19 (cero de esta)

Hasta ahi me salen solo los registros detalle de los maximos registros en la principal. Los que no me aparecen con registros es porque no tienen registros detalle, asi de simple. Asi que en total me salen solo dos registros.

Peeeero lo que ocupo en realidad es que si un registro de la tabla principal no tiene detalle, entonces que me arrojara el detalle del que le sigue. Por ejemplo, basandonos en la tabla que puse anteriormente.


A 12
A 19
A 2
A 78 <-- este si tiene detalle asi que no hay problema
B 10 <-- este es el mayor pero no tiene detalle
B 8 <-- tengo que mostrar los registros detalle de este por ser el que le sigue
B 5
C 6 <-- le sigue este y lo muestro, en caso de que no tenga no muestro nada.
C 12 <--le sigue este pero tampoco tiene
C 19 <-- este es el mayor pero no tiene detalle

Eso no lo he podido resolver. Ojala alguien me diera una idea de que puedo haceeeeer.