2012-02-18 14 views
24

Moja tabela bazy danych programu Access ma 2 kolumny: nazwę i cenę. Chcę wykonać zapytanie, które wybierze 10 najlepszych cen. Jak to zrobić? Dzięki.Jak wybrać 10 najlepszych w zapytaniu o dostęp?

+4

Witamy StackOverflow. Proszę zobaczyć [FAQ] (http://stackoverflow.com/faq), jak zadawać pytania tutaj. To nie jest witryna "Give me theh Codez". Interesujący może być także [What Have You Trying?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

Odpowiedz

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

Updated: @Remou wskazał, że:

„Access SQL wybiera mecze, więc będzie wybrać wszystkie elementy z samych najwyższych cenach, nawet jeśli zawiera więcej niż 10 rekordów .Obserwowanie to zamówienie według ceny i unikatowego pola (kolumny). "

Tak więc, jeśli masz niepowtarzalną kolumnę kod produktu, należy dodać tak:

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

Wystarczy krótki komentarz - Access SQL wybiera dopasowania, więc będzie wybierz wszystkie przedmioty z takimi samymi najwyższymi cenami, nawet jeśli obejmuje to więcej niż 10 rekordów. Obejście to zamówienie według ceny i unikatowe pole (kolumna). – Fionnuala

+1

+1 dla poprawki. Występowały problemy z dostępem, zwracając zbyt wiele wierszy, gdy tylko użyłem ORDER BY. – Praesagus

+0

Uwaga dodatkowa, ten problem występuje również podczas uzyskiwania dostępu do bazy danych z programu Excel przy użyciu funkcji ADO. Rozwiązanie tutaj (przy użyciu arbitralnego klucza głównego dodanego do "ORDER BY") działało idealnie! – Gaffi

Powiązane problemy