De Code:
SELECT AutoTB.AutoIDKey, BronTabelMerk.Merk, BronTabelModel.Model, Persoonsgegevens.Naam,
AutoTB.Kenteken, Rijperiode.BeginDatum FROM AutoTB
LEFT JOIN BronTabelMerk ON AutoTB.MerkKey = BronTabelMerk.MerkKey
LEFT JOIN BronTabelModel ON AutoTB.ModelKey = BronTabelModel.ModelKey
LEFT JOIN Rijperiode ON Rijperiode.AutoIDKey= AutoTB.AutoIDKey
LEFT JOIN Medewerker ON Rijperiode.medewerkerKey = Medewerker.MedewerkerKey
LEFT JOIN Persoonsgegevens On Medewerker.PersoonsgegevensKey=Persoonsgegevens.PersoonsgegevensKey
LEFT JOIN Contract ON Contract.AutoIDKey = AutoTB.AutoIDKey
LEFT JOIN Verzekering ON Verzekering.AutoIDKey = AutoTB.AutoIDKey
LEFT JOIN Eigenaar ON Contract.EigenaarKey = Eigenaar.EigenaarKey
LEFT JOIN Tankpas ON Tankpas.AutoIDKey = AutoTB.AutoIDKey
LEFT JOIN schade ON Rijperiode.RijperiodeKey = Schade.RijperiodeKey
WHERE ((@Kenteken IS NULL) OR (AutoTB.Kenteken LIKE @Kenteken + '%')) AND
((@Medewerker IS NULL) OR (Persoonsgegevens.Naam LIKE @Medewerker + '%')) AND ((@LeaseCategorieKey IS NULL) OR (AutoTB.LeaseCategorieKey = @LeaseCategorieKey))
AND ((@MerkKey IS NULL) OR (AutoTB.MerkKey = @MerkKey))
AND ((@Sleutelnummer IS NULL) OR (AutoTB.Sleutelnummer LIKE @Sleutelnummer + '%'))
AND ((@ModelKey IS NULL) OR (AutoTB.ModelKey = @ModelKey))
AND ((@KleurKey IS NULL) OR (AutoTB.KleurKey = @KleurKey))
AND ((@Beschikbaarheid IS NULL) OR (AutoTB.Beschikbaarheid = @Beschikbaarheid)) AND ((@Bestickering IS NULL) OR (AutoTB.Bestickering = @Bestickering))
AND ((@EnergieLabelKey IS NULL) OR (AutoTB.EnergieLabelKey = @EnergieLabelKey)) AND ((@BijtellingspercentageKey IS NULL) OR (AutoTB.BijtellingspercentageKey = @BijtellingspercentageKey))
AND AutoTB.InBehandeling = 0
AND Contract.InBehandeling = 0
AND Tankpas.InBehandeling = 0
AND Verzekering.Inbehandeling = 0
GROUP BY AutoTB.AutoIDKey, BronTabelMerk.Merk, BronTabelModel.Model, Persoonsgegevens.Naam, AutoTB.Kenteken , Rijperiode.BeginDatum
END
---
Het resultaat van bovenstaande code is bijvoorbeeld:
[AutoIDKey] [Merk] [Model] [Naam] [Kenteken] [BeginDatum]
140 Opel Astra Jan 00-AAA-3 01-01-2008
140 Opel Astra Ruud 00-AAA-3 01-01-2009
145 Volvo C70 Bart 88-BBB-6 01-05-2008
Nu wil ik het zo hebben, dat als een auto meerdere eigenaren heeft gehad (in dit geval dus Ruud en Jan), alleen degene getoond wordt met de laatste BeginDatum. Dus:
[AutoIDKey] [Merk] [Model] [Naam] [Kenteken] [BeginDatum]
140 Opel Astra Ruud 00-AAA-3 01-01-2009
145 Volvo C70 Bart 88-BBB-6 01-05-2008
Is het mogelijk om bijvoorbeeld de AutoIDKey's te vergelijken en wanneer een AutoIDKey meerdere keren voorkomt, het zo in te stellen dat alleen de laatste BeginDatum getoond wordt?
SELECT AutoTB.AutoIDKey, BronTabelMerk.Merk, BronTabelModel.Model, Persoonsgegevens.Naam,
AutoTB.Kenteken, Rijperiode.BeginDatum FROM AutoTB
LEFT JOIN BronTabelMerk ON AutoTB.MerkKey = BronTabelMerk.MerkKey
LEFT JOIN BronTabelModel ON AutoTB.ModelKey = BronTabelModel.ModelKey
LEFT JOIN Rijperiode ON Rijperiode.AutoIDKey= AutoTB.AutoIDKey
LEFT JOIN Medewerker ON Rijperiode.medewerkerKey = Medewerker.MedewerkerKey
LEFT JOIN Persoonsgegevens On Medewerker.PersoonsgegevensKey=Persoonsgegevens.PersoonsgegevensKey
LEFT JOIN Contract ON Contract.AutoIDKey = AutoTB.AutoIDKey
LEFT JOIN Verzekering ON Verzekering.AutoIDKey = AutoTB.AutoIDKey
LEFT JOIN Eigenaar ON Contract.EigenaarKey = Eigenaar.EigenaarKey
LEFT JOIN Tankpas ON Tankpas.AutoIDKey = AutoTB.AutoIDKey
LEFT JOIN schade ON Rijperiode.RijperiodeKey = Schade.RijperiodeKey
WHERE ((@Kenteken IS NULL) OR (AutoTB.Kenteken LIKE @Kenteken + '%')) AND
((@Medewerker IS NULL) OR (Persoonsgegevens.Naam LIKE @Medewerker + '%')) AND ((@LeaseCategorieKey IS NULL) OR (AutoTB.LeaseCategorieKey = @LeaseCategorieKey))
AND ((@MerkKey IS NULL) OR (AutoTB.MerkKey = @MerkKey))
AND ((@Sleutelnummer IS NULL) OR (AutoTB.Sleutelnummer LIKE @Sleutelnummer + '%'))
AND ((@ModelKey IS NULL) OR (AutoTB.ModelKey = @ModelKey))
AND ((@KleurKey IS NULL) OR (AutoTB.KleurKey = @KleurKey))
AND ((@Beschikbaarheid IS NULL) OR (AutoTB.Beschikbaarheid = @Beschikbaarheid)) AND ((@Bestickering IS NULL) OR (AutoTB.Bestickering = @Bestickering))
AND ((@EnergieLabelKey IS NULL) OR (AutoTB.EnergieLabelKey = @EnergieLabelKey)) AND ((@BijtellingspercentageKey IS NULL) OR (AutoTB.BijtellingspercentageKey = @BijtellingspercentageKey))
AND AutoTB.InBehandeling = 0
AND Contract.InBehandeling = 0
AND Tankpas.InBehandeling = 0
AND Verzekering.Inbehandeling = 0
GROUP BY AutoTB.AutoIDKey, BronTabelMerk.Merk, BronTabelModel.Model, Persoonsgegevens.Naam, AutoTB.Kenteken , Rijperiode.BeginDatum
END
---
Het resultaat van bovenstaande code is bijvoorbeeld:
[AutoIDKey] [Merk] [Model] [Naam] [Kenteken] [BeginDatum]
140 Opel Astra Jan 00-AAA-3 01-01-2008
140 Opel Astra Ruud 00-AAA-3 01-01-2009
145 Volvo C70 Bart 88-BBB-6 01-05-2008
Nu wil ik het zo hebben, dat als een auto meerdere eigenaren heeft gehad (in dit geval dus Ruud en Jan), alleen degene getoond wordt met de laatste BeginDatum. Dus:
[AutoIDKey] [Merk] [Model] [Naam] [Kenteken] [BeginDatum]
140 Opel Astra Ruud 00-AAA-3 01-01-2009
145 Volvo C70 Bart 88-BBB-6 01-05-2008
Is het mogelijk om bijvoorbeeld de AutoIDKey's te vergelijken en wanneer een AutoIDKey meerdere keren voorkomt, het zo in te stellen dat alleen de laatste BeginDatum getoond wordt?