Helpmij.nl
Helpmij.nl
Helpmij.nl

Quote

Weergeven resultaten 1 tot 9 van 9

Onderwerp: Select Distinct

  1. #1
    Vraag is opgelost

    Select Distinct

    Beste Form leden,

    Graag zou ik het voor elkaar krijgen om "Batch" nummers weer te geven in de volgorde van de recentste naar de minst recentste (Leeftijd). Ieder Batch nummer moet maar éénkeer worden weergegeven.

    met "Set rs = CurrentDb.OpenRecordset("SELECT DISTINCT Batch FROM JMDQ ORDER BY Batch ASC") " krijg ik keurig de batch gesorteerd op volgorde maar niet op leeftijd

    Met "Set rs = CurrentDb.OpenRecordset("SELECT DISTINCT Batch FROM JMDQ ORDER BY Leeftijd ASC")" krijg ik een fout melding 'Run-time erro '3093': ORDER By clause (Leeftijd) conflicts with DISTINTC'
    als ik het DISTINCT weg laat dan komt hetzelfde Batch nummer meerdere malen voor.


    JMDQ is een Query die de data bevat

  2. #2
    Mega Senior NoellaG's avatar
    Geregistreerd
    10 april 2019
    Locatie
    Melsele
    Ik neem aan dat de leeftijd een datumveld is en de hoogste datum dus de meest recente is? in dat geval :
    Code:
    Select batch 
    from JMDQ
    group by batch
    order by max(Leeftijd)
    SQL DBA
    (just like a normal person - only way cooler)

  3. #3
    Dank je wel.

  4. #4
    Ik heb toch nog een aanvullende vraag.


    De onderstaandw werkt perfect. Ik zou hem echter willen uitbreiden met het deel " & SFilter


    Set rs = CurrentDb.OpenRecordset("SELECT Batch FROM JMDQ Group By Batch ORDER BY min(Leeftijd)")

    De data van sFilter wordt ergens anders gevuld. In de onderstaande functie werkt het.

    Set rs = CurrentDb.OpenRecordset("SELECT DISTINCT Batch FROM JMDQ WHERE " & sFilter)


    Hoe kan ik het bij de niet DISCINCT versie werkend? Met mijn uitvoering, zie hieronder werkt het niet en krijg ik een fout melding


    Set rs = CurrentDb.OpenRecordset("SELECT Batch FROM JMDQ Group By Batch ORDER BY min(Leeftijd) WHERE " & sFilter)

  5. #5
    Member xps351's avatar
    Geregistreerd
    22 juni 2022
    Locatie
    Schiedam
    Kijk eens naar https://learn.microsoft.com/en-us/of...oft-access-sql voor de juiste volgorde van de elementen van een sql-statement
    Laatst aangepast door xps351 : 12 oktober 2022 om 10:19
    Groeten,

    Peter

  6. #6
    Mega Senior NoellaG's avatar
    Geregistreerd
    10 april 2019
    Locatie
    Melsele
    SQL syntax:

    SELECT [TOP]...
    FROM ... [JOIN ON ...]
    [WHERE ...]
    [GROUP ON ...]
    [HAVING...]
    [ORDER BY...]

    Volgorde waarin de instructie wordt uitgevoerd door de engine:
    1. FROM (+ JOINS)
    2. WHERE
    3. GROUP BY
    4. HAVING
    5. SELECT
    6. ORDER BY
    7. TOP

    Als je het query plan bekijkt dan kan je zien dat inwendig een distinct wordt uitgevoerd als een group by
    SQL DBA
    (just like a normal person - only way cooler)

  7. #7
    Dank je wel.

  8. #8
    ik dacht dat ik de oplossing had maar helaas

    Set rs = CurrentDb.OpenRecordset("SELECT Batch FROM JMDQ WHERE " & sFilter GROUP BY Batch ORDER BY min(Leeftijd)")

    Ik krijg het echter niet voor elkaar om de functie zonder foutmelding te komen.

    Welke denkfout maak ik hier?

  9. #9
    Ik heb het gevonden moest nog een & " achter sFilter

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren