Hoi,
Ik gebruik onderstaand stukje code om verjaardagen te kunnen uitvragen uit een leden database. Dit scriptje werkt prima, maar toen ik zojuist zag dat het een lege output teruggaf omdat er de komende dagen niemand jarig is, realiseerde ik me dat het veel netter zou zijn om weer te geven op welke volgende drie dagen (die dus niet per se op een volgend zijn) er iemand jarig is, in plaats van de verjaardagen voor vandaag, morgen en overmorgen weet te geven zoals nu het geval is.
In eerste instantie lijkt mij dit iets wat je kan doen doormiddel van een GROUP BY op sort_date icm een LIMIT 3 oid, echter het probleem is dan dat er slechts een jarige per dag weergegeven wordt. Ik zou natuurlijk mbv een stukje programeren een loopje kunnen maken, maar netter is het om alles in een query te houden.
Hoe kan ik mijn query zodanig aanpassen dat ik dit kan doen, of loop ik hier gewoon weer tegen een tekortkoming van MySQL aan mbt subqueries ed?
Ik gebruik onderstaand stukje code om verjaardagen te kunnen uitvragen uit een leden database. Dit scriptje werkt prima, maar toen ik zojuist zag dat het een lege output teruggaf omdat er de komende dagen niemand jarig is, realiseerde ik me dat het veel netter zou zijn om weer te geven op welke volgende drie dagen (die dus niet per se op een volgend zijn) er iemand jarig is, in plaats van de verjaardagen voor vandaag, morgen en overmorgen weet te geven zoals nu het geval is.
In eerste instantie lijkt mij dit iets wat je kan doen doormiddel van een GROUP BY op sort_date icm een LIMIT 3 oid, echter het probleem is dan dat er slechts een jarige per dag weergegeven wordt. Ik zou natuurlijk mbv een stukje programeren een loopje kunnen maken, maar netter is het om alles in een query te houden.
Hoe kan ik mijn query zodanig aanpassen dat ik dit kan doen, of loop ik hier gewoon weer tegen een tekortkoming van MySQL aan mbt subqueries ed?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| SELECT leden.leden_id, CONCAT_WS(' ', leden.voornaam, leden.tussen, leden.achternaam) AS naam, DATE_FORMAT(leden.geboortedatum, '%d.%m') AS date, DATE_ADD( leden.geboortedatum, INTERVAL ( // bereken hoe oud lid op volgende verjaardag is.. YEAR(CURRENT_DATE()) - YEAR(leden.geboortedatum) - (RIGHT(CURRENT_DATE(), 5) <= RIGHT(leden.geboortedatum, 5)) + 1 ) YEAR // .. en tel dit op bij geboortedatum om te kunnen sorteren ) AS sort_date FROM leden WHERE leden.lid = 'ja' HAVING // verjaardagen voor vandaag, morgen en overmorgen sort_date BETWEEN CURRENT_DATE() AND DATE_ADD( CURRENT_DATE(), INTERVAL 2 DAY ) ORDER BY sort_date ASC, naam ASC; |
Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder