List:Spanish« Previous MessageNext Message »
From:Leandro Oliveri Date:August 11 2009 12:26pm
Subject:Re: Instruccion SQL para obtener fila de ValorMaximo por cada
Interno.
View as plain text  
Se puede hacer mucho mas siemplo,

SELECT *
FROM ejemplo
WHERE interno=(SELECT MAX(interno) FROM ejemplo);


Saludos.


2009/8/11 Calabaza <calalinux@stripped>

> El 10 de agosto de 2009 17:29,
> ingelhornsistemas_db@stripped<ingelhornsistemas_db@stripped>
> escribió:
> > Hola Grupo !!!!!
> >
> > Tengo un problema con MySQL y necesito hacerteles una consulta
> >
> > Dada una tabla de Ejemplo, deseo obtener los datos de la fila donde el
> > INTERNO tenga el maximo NROPLANILLA, o sea obtener la fila con todos sus
> > datos donde cada INTERNO tiene el NROPLANILLA mas grande.
> >
> > Teniendo una tabla de Ejemplo :
> >
> > REG.INTERNO NROPLANILLA CAMPOA
> > 1      1       50        info50
> > 2      1       56        info56
> > 3      1       90        info90
> > 4      2       35        info35
> > 5      2       32        info32
> > 6      3       etc.
> >
> > como te decia, quiero obtener de cada INTERNO ., el registro entero
> (fila)
> > donde NROPLANILLA tenga el valor maximo para cada INTERNO
> >
> > Ej:
> > REG.INTERNO NROPLANILLA CAMPOA
> > 3      1       90        info90
> > 4      2       35        info35
> > 6      3       etc.
> >
> >
> > He probado haciendo un.....
> >
> > SELECT INTERNO, MAX(NROPLANILLA), CAMPOA FROM TABLA
> > GROUP BY NROINTERNO
> >
> > y da esto algo parecido a :
> > REG.INTERNO NROPLANILLA CAMPOA
> > 1      1       50        info50 (dado que trae la primer ocurrencia
> > (REGISTRO:1) de CAMPOA para el INTERNO, pero necesito info90 (REGISTRO:3)
> > que es la del registro donde se encuentra el valor maximo de NROPLANILLA.
> >
> > 4      2       35        info35
> >
> > 6      3       etc.
> >
> > o sea, que me trae correctamente INTERNO y NROPLANILLA porque me trae el
> > MAX(NROPLANILLA) de cada INTERNO ., pero no me trae el registro entero ,
> > osea CAMPOA no tiene la informacion del registro donde esta NROPLANILLA
> en
> > su valor maximo., sino de la primero ocurrencia., en este caso info50.,
> > cuando lo que necesito es que me traiga info90 (que es el valor de CAMPOA
> > donde el INTERNO tiene su valor maximo)., y así sucesivamente por cada
> > Interno.
> > se entiende., ? es un poquito complicado.
> > Tal vez sea sencillo., pero no he encontrado la solución.,
> > por eso recurro a vos.,
> > porque se que inmediatamente me vas a dar la solución en una sola
> > instrucción SQL (que es lo deseado).,
>
> Creé esta tabla para la prueba:
>
> create table pruebas (
> reg integer unsigned primary key auto_increment,
> interno integer unsigned not null,
> nroplanilla integer unsigned not null,
> campoa varchar(6) not null
> );
>
> Y cargué estos valores:
> insert into pruebas (interno, nroplanilla, campoa) values
>
> (1,50,'info50'),(1,56,'info56'),(1,90,'info90'),(2,35,'info35'),(2,32,'info32');
>
> Y el select resultante es:
> Select
> *,
> (Select c.campoa from pruebas c where c.interno=b.interno and
> c.nroplanilla=b.nroplanilla) as campoa
> from
> (
> SELECT
>        p.interno,
>        max(p.nroplanilla) as nroplanilla
> FROM pruebas p
> group by p.interno
> ) b;
>
>
>
> > y si es factible o no ., o si la
> > solución pasa por hacer tablas temporales., y varias instrucciones SQL.
> >
> > Muchas Gracias por todo.
> >
> >
> > Gracias nuevamente
> >
> > Un abrazo
> >
> > Pablo Dario Ingelhorn
> > Ingelhorn Sistemas
> > http://www.wix.com/ingelhornsistemas/inicio
> > (6303) Toay  - La Pampa - Argentina
> >
> >
> > __________________________________________________
> > Correo Yahoo!
> > Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu
> > cuenta ya! - http://correo.yahoo.com.ar
> >
> > --
> > Lista de Correos de MySQL
> > Para el historial de la lista: http://lists.mysql.com/mysql-es
> > Para cancelar inscripción:
> > http://lists.mysql.com/mysql-es?unsub=1
>
> Un abrazo,
>
> --
> §~^Calabaza^~§ from Villa Elisa, Paraguay
> http://calablogbaza.blogspot.com/
>
> http://es.wikipedia.org/wiki/Top-posting
> http://es.wikipedia.org/wiki/Netiquette
>
> --
> Lista de Correos de MySQL
> Para el historial de la lista: http://lists.mysql.com/mysql-es
> Para cancelar inscripción:
> http://lists.mysql.com/mysql-es?unsub=1
>
>

Thread
Instruccion SQL para obtener fila de ValorMaximo por cada Interno.ingelhornsistemas_db@yahoo.com.ar10 Aug
  • Re: Instruccion SQL para obtener fila de ValorMaximo por cada Interno.Calabaza11 Aug
    • Re: Instruccion SQL para obtener fila de ValorMaximo por cada Interno.Leandro Oliveri11 Aug
  • Re: Instruccion SQL para obtener fila de ValorMaximo por cada Interno.ingelhornsistemas_db@yahoo.com.ar11 Aug