Bases de Datos - una consulta

   
Vista:

una consulta

Publicado por cazador (1 intervención) el 30/03/2009 10:14:11
hi gente tengo problemas con esta consulta ,tengo una tabla alumnos y los campos nombre y edad. debo mostrar el nombre del alumno de menor edad, mostrando el nombre y la edad actual
para que me muestre la menor edad hice asi

select min(datediff("yy",[fecha nacimiento],getdate()))from alumnos

y cuando le especifico que me muestre el nombre
select min(datediff("yy",[fecha nacimiento],getdate())),nombre from alumnos

me sale este error

La columna 'alumnos.nombre' de la lista de selección no es válida, porque no está contenida en una función de agregado y no hay cláusula GROUP BY.

weno hago lo siguiente

select min(datediff("yy",[fecha nacimiento],getdate())),nombre from alumnos group by nombre

pero esto me muestra todos los nombres ? yo solo quiero que me muestre 1 solo nombre el de menor edad
que estoy haciendo mal?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:una consulta

Publicado por roger (11 intervenciones) el 31/03/2009 20:42:04
especifica en la consulta que solo quieres un resultado

select top 1 min(datediff("yy",[fecha nacimiento],getdate())) as edad,nombre from alumnos order group order by nombre

con select top 1 traes el primero, y lo ordenas por nombre, entonces el primero ordenado de abajo hacia arriba (ASC), seria el menor

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar