2012-02-18 17 views
24

La tabla de la base de datos de My Access tiene 2 columnas: nombre y precio. Quiero hacer una consulta que seleccione los 10 precios más altos. ¿Como hacer esto? Gracias.¿Cómo seleccionar el top 10 en la consulta de acceso?

+4

Bienvenido a StackOverflow. Consulte [Preguntas frecuentes] (http://stackoverflow.com/faq) para saber cómo hacer preguntas aquí. Este no es un sitio 'Give me the Codez'. También puede ser de interés [¿Qué has probado?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

Respuesta

38
select top 10 Name, Price 
from MyTable 
order by Price desc 

Actualizado: @Remou señaló que:

"Acceso SQL selecciona partidos, por lo que seleccionar todos los elementos con los mismos precios más altos, incluso si esto incluye más de 10 registros El work-around es ordenar por precio y un campo único (columna) ".

Por lo tanto, si usted tiene una columna de código de producto único, añadir este modo:

select top 10 Name, Price 
from MyTable 
order by Price desc, UniqueProductCode desc 
+14

Solo un comentario rápido: Access SQL selecciona las coincidencias, por lo que seleccione todos los artículos con los mismos precios más altos, incluso si esto incluye más de 10 registros. La solución es ordenar por precio y un campo único (columna). – Fionnuala

+1

+1 para la solución. Estaba teniendo problemas con el acceso al devolver demasiadas filas tan pronto como utilicé ORDER BY. – Praesagus

+0

Nota extra, este problema también ocurre al acceder a la base de datos desde Excel utilizando ADO. La solución aquí (usando la clave maestra arbitraria agregada al 'ORDER BY') funcionó perfectamente. – Gaffi

Cuestiones relacionadas