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

obtener en un query, valor max y clave

Estas en el tema de obtener en un query, valor max y clave en el foro de Bases de Datos General en Foros del Web. Saludos a tod@s, espero se encuentren bien. Alguien me podria ayudar con esto, no se si se pueda hacer, pareciera ser sencillo, pero no le ...
  #1 (permalink)  
Antiguo 26/03/2009, 10:36
 
Fecha de Ingreso: agosto-2004
Mensajes: 296
Antigüedad: 19 años, 8 meses
Puntos: 0
obtener en un query, valor max y clave

Saludos a tod@s, espero se encuentren bien.

Alguien me podria ayudar con esto, no se si se pueda hacer, pareciera ser sencillo, pero no le he encontrado la forma:

Tengo una tabla con un campo idClave y un campo Valor, algo asi:

idClave Valor
1 - 23
2 - 14
3 - 54
4 - 56
5 - 10
6 - 67
7 - 99
8 - 38

y quiero, en un solo query, obtener el valor maximo de la columna Valor y el idClave de ese valor maximo, es decir, que en este ejemplo, el query me regresara:

Clave Maximo
7 - 99

pero no se como hacerlo.

y bueno, aprovechando, no se si en ese mismo query tambien se pudiera obtener el minimo y el id, es decir, algo asi:

ClaveMax Maximo ClaveMin Minimo
7 - 99 - 5 - 10

Saludos y muchas gracias por su atención.
  #2 (permalink)  
Antiguo 26/03/2009, 10:51
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: obtener en un query, valor max y clave

Un saludo suprempada.

Prueba con:

Código SQL:
Ver original
  1. SELECT idClave, valor FROM tabla WHERE valor = (SELECT MAX(valor) FROM tabla);

Espero te sirva.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 26/03/2009, 11:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: obtener en un query, valor max y clave

Te recomiendo la propuesta de huesos52, y luego hacer lo mismo para el mínimo, pero si sigues empeñado en sacarlo en una consulta (poco eficiente, con autojoin), esta sería una mala opción:

SELECT ta.idClave clavemax, ta.valor max, ta2.idClave clavemin, ta2.valor min
FROM tabla ta, tabla ta2
WHERE ta.valor = (
SELECT max( valor ) maximo
FROM tabla )
AND ta2.valor = (
SELECT min( valor ) minimo
FROM tabla )
AND ta.idClave <> ta2.idClave

saludos para ti y para huesos52
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:36.