Toon posts:

Maximaal aantal resultaten uit SQL

Pagina: 1
Acties:
  • 186 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb gezocht en ik kon geen goed antwoord vinden.

Ik moet uit een query met access maximaal 10 resultaten toveren. Ik mag geen code gebruiken (anders had ik het wel geweten), en LIMIT werkt niet echt. Ik mag dus alleen SQL gebruiken.

Wie oh wie weet antwoord?

  • whoami
  • Registratie: December 2000
  • Nu online
LIMIT is SQL maar werkt niet in Access SQL.
Probeer eens TOP.

https://fgheysels.github.io/


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

hebben die 10 nog een voorwaarde van de hoogste oid?

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Weer wat geleerd. Dat is het dus, wist niet dat die mogelijkheid bestond.

Verwijderd

Topicstarter
Inderdaad zodra ik een ORDER BY erin pleur doet hij het niet meer.

  • whoami
  • Registratie: December 2000
  • Nu online
Hoezo?

Als je dus iets doet in de trant van:
code:
1
2
SELECT TOP 10 bla FROM tabel
ORDER BY bla

dan werkt het niet meer door die ORDER BY? Wat vreemd. Welke fout krijg je dan?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Het werkt wel maar ik krijg in één keer meerdere resultaten

Verwijderd

Topicstarter
en dan vooral bij datums,

edit:
Ik weet het maar wilde nog nieuws typen dus dacht, maak niet uit. Maar zal het niet meer doen hoor

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 06 juni 2002 22:22 schreef extrafriss het volgende:
en dan vooral bij datums
uhm Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif is heel handig /hint

Doet iets met Cloud (MS/IBM)


  • whoami
  • Registratie: December 2000
  • Nu online
Ik vind het zeer vreemd dat dat bij jou niet werkt.
Ik heb hier net eens een Access2000 databank (is dat geen overstatement?) opengetrokken en een query gedaan met een TOP en een ORDER BY en dat werkt perfect. Ik order wel niet op datumvelden.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Het zal wel aan de datum velden liggen.

Maar het mooie van sorteren op datum en autonummering is dat deze bijna gelijk lopen als je gaat toevoegen, dus laatste Id is ook laatste ingevoerd.

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 26-08 16:09
Lekker vaaaaaaaag!
Same here.. ORDER BY op datumveld samen met TOP werkt voor geen meter :( Weird zeg |:(

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 06-09 21:14

TheDane

1.618

where rowid < 10

toch ?

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Doe je hele query eens.

Verwijderd

Op de Access 2000 Noordenwind (NL versie, :r) database doet de volgende query het prima:
code:
1
2
3
SELECT TOP 10 [orders].[Orderdatum]
FROM orders
ORDER BY [orders].[Orderdatum] DESC;

Daarbij is orders.Orderdatum gewoon een Datum/Tijd kolom.

In de help staat hhet volgende stukje over TOP:
TOP n [PERCENT]

Met dit predikaat wordt alleen dat aantal records als resultaat gegeven dat zich bovenin of onderin een bereik bevindt dat is gespecificeerd door een component ORDER BY. Stel dat u de namen wilt opvragen van de 25 beste leerlingen uit de examenklas van 1994:
code:
1
2
3
4
5
SELECT TOP 25
Voornaam, Achternaam
FROM Leerlingen
WHERE Examenjaar = 1994
ORDER BY GemiddeldeEindcijfer DESC;

Als u de component ORDER BY achterwege laat, geeft de query als resultaat een willekeurige reeks van 25 records uit de tabel Leerlingen die voldoen aan de component WHERE.

Het predikaat TOP maakt geen keuze tussen gelijke waarden. Als de vijfentwintigste en zesentwintigste record in het vorige voorbeeld hetzelfde gemiddelde eindcijfer bevatten, geeft de query 26 records als resultaat.

U zou ook het gereserveerde woord PERCENT kunnen gebruiken. Daarmee kunt u een percentage opvragen van de records bovenin of onderin een bereik dat is gespecificeerd met een component ORDER BY. Stel dat u geen overzicht wilt van de 25 beste studenten, maar tien procent van de slechtste leerlingen in deze klas:
code:
1
2
3
4
5
SELECT TOP 10 PERCENT
Voornaam, Achternaam
FROM Leerlingen
WHERE Examenjaar = 1994
ORDER BY GemiddeldeEindcijfer ASC;

Het predikaat ASC geeft aan dat de onderste waarden als resultaat worden gegeven. De waarde achter TOP moet een positieve Integer zijn.

TOP heeft geen invloed op de mogelijkheid tot bijwerken van de query.
Ik denk dat met name de informatie in de vet gedrukte paragraaf van belang kan zijn voor jou.

Als je namelijk alleen een datum (en dus geen tijd) opslaat in een dergelijke kolom, en je vraagt de TOP 5 op, terwijl er 25 records zijn van die dag, dan zul je dus 25 records terugkrijgen, en niet de verwachte 5 records.

HTH :)
Pagina: 1