Ik ben uren bezig geweest met het volgende probleem:
Ik heb een tabel met daarin o.a. 3 velden (een uid en twee datetime velden):
id
meeting_planned_date
meeting_date
In een bestaand systeem worden afspraken gepland (meeting_planned_date wordt gevuld) en als de meeting ook heeft plaats gevonden wordt meeting_date ook gevuld.
Nu wil ik een overzicht mbv SQL uit de database halen, waarin de geplande en plaatsgevonden afspraken van de vorige, huidige en volgende week staan:
Uit deze tabel blijkt dus o.a. dat er volgende week 3 gesprekken al hebben plaatsgevonden. Het systeem maakt dit helaas mogelijk, maar het moet wel naar voren komen in het overzicht.
Ik zou dit makkelijk kunnen doen met 2 queries, maar het moet echt in 1 query gebeuren. Eigenlijk wordt er een Oracle database gebruikt, maar als iemand het in MySQL of MS SQL kan laten werken, ben ik ook al een heel eind geholpen.
Waar ik mee begonnen ben, was zoiets:
Nu doen alle 3 de queries apart het heel goed, maar (ik denk) door de GROUP BY werkt het geheel niet meer.
Ik heb een tabel met daarin o.a. 3 velden (een uid en twee datetime velden):
id
meeting_planned_date
meeting_date
In een bestaand systeem worden afspraken gepland (meeting_planned_date wordt gevuld) en als de meeting ook heeft plaats gevonden wordt meeting_date ook gevuld.
Nu wil ik een overzicht mbv SQL uit de database halen, waarin de geplande en plaatsgevonden afspraken van de vorige, huidige en volgende week staan:
code:
1
2
3
4
5
| Weeknr | Ingepland | Plaatsgevonden ----------------------------------- 40 | 706 | 600 41 | 436 | 27 42 | 218 | 3 |
Uit deze tabel blijkt dus o.a. dat er volgende week 3 gesprekken al hebben plaatsgevonden. Het systeem maakt dit helaas mogelijk, maar het moet wel naar voren komen in het overzicht.
Ik zou dit makkelijk kunnen doen met 2 queries, maar het moet echt in 1 query gebeuren. Eigenlijk wordt er een Oracle database gebruikt, maar als iemand het in MySQL of MS SQL kan laten werken, ben ik ook al een heel eind geholpen.
Waar ik mee begonnen ben, was zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| SELECT DATEPART(week, `ingepland`), ( SELECT COUNT(`meeting_planned_date`) FROM `planning` WHERE .... code die de juiste 3 rijen ophaalt ) as Ingepland, ( SELECT COUNT(`meeting_date`) FROM `planning` WHERE .... code die de juiste 3 rijen ophaalt ) as Plaatsgevonden FROM `planning` WHERE .... code die de juiste 3 weken ophaalt GROUP BY DATEPART(week, `ingepland`) |
Nu doen alle 3 de queries apart het heel goed, maar (ik denk) door de GROUP BY werkt het geheel niet meer.