jaartallen distilleren voor keuzelijst

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

scw

Gebruiker
Lid geworden
5 jun 2009
Berichten
530
Goedenavond,

Een andere vraag van mij: ik heb een query met daarin verschillende data genoteerd als:

01-01-2008
02-02-2009
03-03-2009
etc.

Nu heb ik een dropdown box waar ik de jaartallen in wil hebben die voorkomen uit deze query. Dus 1x 2009, 1x 2008 etc.

Nu heb ik daarvoor een aparte query gemaakt (noodzakelijk?):

SELECT tblNaam.Datum
FROM tblNaam
GROUP BY tblNaam.Datum
ORDER BY tblNaam.Datum DESC;


Welke het wel doet, maar deze geeft voor elke record het jaartal en niet één keer het jaartal wat eens voorkomt (uiteindelijk doel). Ik heb in de query bij eigenschappen van het veld 'Datum' de notatie al veranderd naar "yyyy",wat ook goed gaat. Maar hoe kan ik het bereiken dat de query dus elk voorkomend jaar maar één keer weergeeft?

Vriendelijk bedankt!

SCW
 
Verander je keuzelijst in deze code:

Code:
SELECT DISTINCT Year(Datum) AS Jaar
FROM tblNaam
GROUP BY Year(Datum) 
ORDER BY Year(Datum) DESC;

Hiermee vertaal je de datum naar een jaartal, en m.b.v. het woord DISTINCT worden alle getallen maar één keer getoond.
 
Bedankt!

Ook bedankt voor deze oplossing Michel! Het werkt met DISTINCT. Ik ga deze onthouden want mogelijk kan ik dit nog toepassen om andere query's ook... Want in een andere query die ik gebruik wordt een naam niet weergegeven wanneer deze 0 matches heeft. Is DISTINCT daar ook de oplossing voor? Ik bedoel geeft die dan ook alle namen weer:

Jantje 4
Pietje 0
Henkie 0

Nu geeft die bij mij alleen maar Jantje weer namelijk...
 
DISTINCT is een groeperingsoptie, waarbij je alleen unieke records overhoudt. Als je een query hebt waarbij je bepaalde records niet ziet, omdat de waarden 0 zijn, dan helpt Distinct denk ik ook niet. Je zult dan de knop Totalen aan moeten zetten, en groepen op Naam bijvoorbeeld.
 
query

Vergeef mijn ondeskundigheid, maar moet het je toch vragen:

Ik heb de totalen volgens mij al aan staan, moet ik er een extra veld aan toevoegen?

SELECT tblRecords.Persoon, Count(tblRecords.RecordID) AS AantalVanRecordID
FROM tblRecords
WHERE (((Year([Datum]))=Year(Now())))
GROUP BY tblRecords.Persoon
ORDER BY Count(tblRecords.RecordID) DESC;
 
Probeer deze variant eens:

SELECT DISTINCT Persoon, Count(RecordID) AS Aantal
FROM tblRecords
WHERE (Year([Datum])=Year(Now()) Or [Datum] Is Null)
GROUP BY Persoon
ORDER BY Count(RecordID) DESC;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan