Op een database (Microsoft SQL Server 2008) probeer ik in de Management Studio een overzicht te maken van ordernummers met daarbij 2 verschillende datums (start- en einddatum) en de doorlooptijd (verschil in dagen).
Hiervoor zijn 2 tabellen benodigd, Order en Taak die gekoppeld zijn door Order.id = Taak.order_id.
Om de startdatum te berekenen gebruik ik de volgende Query:
En om de einddatum te berekenen gebruik ik de volgende Query:
Ik gebruik de GROUP BY clausule in combinatie met de MIN en MAX functies omdat het (theoretisch) kan voorkomen dat een taak met de specifieke omschrijving meerder keren kan voorkomen.
Het lukt me dus wel om de begin- en einddatum in aparte queries te zetten, maar ik krijg het niet voor elkaar om dit in 1 query te vatten. Wie geeft me een zetje de goede kant op?
ordernummer | startdatum | einddatum | doorlooptijd |
123456 | 2016-06-15 | 2016-06-20 | 5 |
Hiervoor zijn 2 tabellen benodigd, Order en Taak die gekoppeld zijn door Order.id = Taak.order_id.
Om de startdatum te berekenen gebruik ik de volgende Query:
SQL:
1
2
3
4
5
6
| SELECT o.ordernummer, MIN(t.startdatum) FROM Order o INNER JOIN Taak t ON o.id = t.order_id WHERE t.omschrijving='Start' GROUP BY o.ordernummer |
En om de einddatum te berekenen gebruik ik de volgende Query:
SQL:
1
2
3
4
5
6
| SELECT o.ordernummer, MAX(t.einddatum) FROM Order o INNER JOIN Taak t ON o.id = t.order_id WHERE t.omschrijving='Eind' GROUP BY o.ordernummer |
Ik gebruik de GROUP BY clausule in combinatie met de MIN en MAX functies omdat het (theoretisch) kan voorkomen dat een taak met de specifieke omschrijving meerder keren kan voorkomen.
Het lukt me dus wel om de begin- en einddatum in aparte queries te zetten, maar ik krijg het niet voor elkaar om dit in 1 query te vatten. Wie geeft me een zetje de goede kant op?