Buenas gente, después de analizar el código de
gnzsoloyo (genio!!), nos sentamos con un amigo (Luciano conocido como @inluciad) e intentamos resolverlo a partir del concepto que nos pasó!!!
No olvido que @jurena también me posteo la solución en el primer enlace, era cuestión de estudiarla!!
Finalmente lo pudimos resolver!!!
El código nos funcionó de esta forma:
Código SQL:
Ver originalSELECT IF(codigomaestro = @cm, @contador:=@contador+1, @contador:=1 AND @cm:=codigomaestro) contador, descripcion, codigomaestro
FROM (SELECT @cm:=1, @contador:=0) r, tabladetalle
GROUP BY contador, codigomaestro
HAVING contador <= 3
ORDER BY codigomaestro
Explico más o menos la query:
- En el IF hacemos la comparación del código maestro, si es igual incrementamos @contador en 1 sino le asignamos 1 y además asignamos a codigomaestro el del registro actual.
- Luego del FROM asignamos las variables y nombramos la tabla.
- Finalmente agrupamos por codigomaestro y mencionamos si o sí en el GROUP BY al contador para poder utilizarlo en el HAVING
De esta forma me trae tres registros detalle de cada registro maestro!!
Desde ya muchas gracias a todos!!!