Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[SQL] 1 record in mijn recordset.

Tazzie
15 antwoorden
  • Ik wil uit een tabel maar 1 record selecteren, en wel dat record met de meest recente datum.
    De datum zelf staat uiteraard in een veld.

    Hoe doe ik dat?
  • Select Max(datum_tijd) FROM tabel

    Het nadeel is dat je geen andere velden kan meevragen in de recordset.

    Wat je ook kan doen is het volgende:

    SELECT id_record, datum_tijd FROM tabel ORDER BY datum_tijd DESC

    Dan krijg je het record met de meest recente datum bovenaan.

    Greetz,

    Taz
  • Oplossing 2 heb ik nu ook, maar ik kan me niet voorstellen dat het niet anders kan.

    Want stel ik heb in mijn tabel 3 miljoen records?

    Er was toch zoiets als TOP?
  • Ja, TOP bestaat ook

    SELECT TOP 1 dat_tim FROM tabel

    Dit geeft alleen de eerste terug.

    Maar dat doet ook niet wat je wil.

    Je kan wel zeggen:

    SELECT TOP 1 * FROM Tabel ORDER BY dat_tim DESC

    Die geeft dan alleen de eerste terug.

  • [quote:caf4fb19a4]SELECT TOP 1 * FROM Tabel ORDER BY dat_tim DESC

    Die geeft dan alleen de eerste terug. [/quote:caf4fb19a4]

    Nou, dan is dat 'm toch?

  • Jawel, maar de top wordt pas uitgevoerd, nadat de records zijn opgehaald. Dat wil zeggen, in een database met 3 miljoen records, haalt hij eerst de de record op, gooit de laatst 2.999.999 weg en geeft de eerste terug. Is nog steeds een behoorlijke belasting (relatief dan. een beetje database heeft hier geen moeite mee…)

    _________________
    Live is all about priorities.<br>
    Was also known as Taz4fun…

    [ Dit Bericht is bewerkt door: Tazzie op 2002-02-27 18:23 ]
  • Oh, ja dat is dus ook niet de bedoeling.

    FF nadenken hoor….

    Uhm..Select Max(datum_tijd) FROM tabel

    Akkoord, dan krijg ik dus 1 record.

    Dan ik daarna toch weer zeggen

    Zoekarg=Max(datum_tijd)

    Select * from tabel where datum_tijd = zoekarg ??
  • Dat kan, gezien het feit dat het op de seconde nauwkeurig word bijgehouden.

    Het zou dan worden:

    SELECT *
    FROM tabel
    WHERE dat_tim = (SELECT MAX(dat_tim) FROM tabel)

    Greetz,

    Taz
  • Goed, maar voor de zuiverheid.

    Stel dat ik het hoogste autonummer wil hebben?
    Dat verandert feitelijk niets?

    Dus nu niet een datum-veld, maar hoogste autonummeringveld.
  • Nee, dat verandert feitelijk niets. Het MAX principe werkt alleen op numerieke velden. (en op datum velden, aangezien die ook getallen zijn).

  • Nou alfanumerieke velden hebben natuurlijk ook een maximum, maar ik geloof.
    Bedankt voor je bijdrage, ik ga het uitproberen.
  • par ne problem…

    succes…

  • Tazzie, je verhaal klopt niet helemaal.

    Ik kan gewoon de velden die ik nodig heb in het SELECT-statement kwijt.

    vb: "SELECT TOP 1 ID, Wensberoep, DatumInschrijving FROM Inschrijvingen ORDER BY DatumInschrijving DESC"
  • Wiep, je leest niet helemaal goed :razz: Als je die SELECT Max(veld) AS Hoogste FROM Tabel gebruikt kun je geen andere velden erbij zetten. Je kan wel met een tweede recordset WHERE veld = " & rs("Hoogste") de rest van het/een record opvragen, maar misschien is de met Max(veld) gevonden waarde in meerdere records aanwezig (je hebt meer leden toegevoegd op die dag (en niet de tijd opgeslagen)…
  • Tazzie, je verhaal klopt dus wel, ik was zelf niet volledig genoeg.

    Ik had er inderdaad bij moeten zetten dat de tijd er ook bij inzit.

    In ieder geval heeft Paulus me weer even terechtgewezen :wink:

    [ Dit Bericht is bewerkt door: Wiep Corbier op 2002-02-28 21:57 ]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.