@rik Als ik deze query gebruik krijg ik alleen het record te zien van de gebruiker met de hoogste datum en dus niet per gebruiker het meest actuele record.
@rik Als ik deze query gebruik krijg ik alleen het record te zien van de gebruiker met de hoogste datum en dus niet per gebruiker het meest actuele record.
Dat krijg ik wel netjes het record met de hoogste datum per medewerker.
Dat is raar want dan zou het met die inner join ook goed moeten gaan.
SQL Code:
SELECT mwnummer, startdatum, tarief FROM mwtarief m INNER JOIN ( SELECT mwnummer, MAX(startdatum) AS maxdate FROM mwtarief GROUP BY mwnummer ) AS x ON x.mwnummer=m.mwnummer AND x.maxdate=m.startdatum
Deze werkt voor de tabel MWTarief. Ik heb een vergelijkbare tabel MWUren (zelfde tabel opbouw) en daar kan ik deze ook gebruiken. Ik loop vast als ik er 1 query van wil maken.
Dus naam ophalen uit MW, tarief uit MVTarief en uren uit MWUren.
Was natuurlijk handig geweest als je zelf al aan had gegeven wat je geprobeerd hebt.
Maar goed. Hier is er één die gecombineerd is.
Volledig voorbeeld kun je hier vinden:SQL Code:
SELECT m.naam, m.mwnummer, t.startdatum, t.tarief, u.startdatum, u.maandag, u.dinsdag, u.woensdag FROM MW m LEFT JOIN MWTarief t ON t.mwnummer=m.mwnummer LEFT JOIN MWUren u ON u.mwnummer=t.mwnummer INNER JOIN ( SELECT mwnummer, MAX(startdatum) AS maxdate FROM MWTarief GROUP BY mwnummer ) AS x1 ON x1.mwnummer=t.mwnummer AND x1.maxdate=t.startdatum INNER JOIN ( SELECT mwnummer, MAX(startdatum) AS maxdate FROM MWUren GROUP BY mwnummer ) AS x2 ON x2.mwnummer=u.mwnummer AND x2.maxdate=u.startdatum
http://rextester.com/PJN59371
Compleet met data
Code:naam mwnummer startdatum tarief startdatum maandag dinsdag woensdag 1 Pascal 1 01.01.2017 00:00:00 150,00 01.02.2017 00:00:00 3 4 5 2 Rik 2 01.01.2017 00:00:00 160,00 01.02.2017 00:00:00 4 5 6
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks