Ik heb twee tabellen. Tabel 1, genaamd Meetwaarden, bevat meetwaardes per datum per uur. Dus een tabel met 3 kolommen: Datum, Tijd en Waarde.
Tabel 2, genaamd Tijdvakken, ziet er als volgt uit.
Ik wil de som van de meetwaarden per tijdvak weten. Daarom heb ik een query gemaakt met de 2 tabellen zonder join want er valt nergens op te joinen.
[sql]SELECT m.Datum, t.Tijdvak, SUM(m.Waarde)
FROM Meetwaarden m
CROSS JOIN
Tijdvakken t
WHERE m.Tijd BETWEEN t.TijdVan AND t.TijdTot
GROUP BY m.Datum,t.Tijdvak[/sql]
Dit geeft prima resultaten. Het probleem is alleen dat het met zeer veel meetwaarden een enorm trage query geworden is.
Dat komt natuurlijk door de Cross Join. Is er een handiger manier om een dergelijke query op te zetten?
Tabel 2, genaamd Tijdvakken, ziet er als volgt uit.
Tijdvak | TijdVan | TijdTot |
7-9 uur | 7:00 | 9:00 |
9-16 uur | 9:00 | 16:00 |
16-20 uur | 16:00 | 20:00 |
20-23 uur | 20:00 | 23:00 |
Ik wil de som van de meetwaarden per tijdvak weten. Daarom heb ik een query gemaakt met de 2 tabellen zonder join want er valt nergens op te joinen.
[sql]SELECT m.Datum, t.Tijdvak, SUM(m.Waarde)
FROM Meetwaarden m
CROSS JOIN
Tijdvakken t
WHERE m.Tijd BETWEEN t.TijdVan AND t.TijdTot
GROUP BY m.Datum,t.Tijdvak[/sql]
Dit geeft prima resultaten. Het probleem is alleen dat het met zeer veel meetwaarden een enorm trage query geworden is.
Dat komt natuurlijk door de Cross Join. Is er een handiger manier om een dergelijke query op te zetten?
Laatst bewerkt door een moderator: