La façon dont vous le dites, vous avez besoin d'une jointure croisée à la table q2, qui est en train de changer en fonction de la valeur de chaque enregistrement s1.sku de la table s1, ce qui est inacceptable.
Je pense que vous devez placer la sous-requête q2 en tant que colonne et non en tant que table. Puisque vous récupérez une seule valeur, il pourrait être facilement mis comme ceci:
SELECT s1.SkuApexId, s1.sku, s1.apex, s1.btw, s1.gebruikernr,
(SELECT MAX(s2.begindatum)
FROM tblskuapex s2
WHERE s1.sku = s2.sku) as maxbegindatum
FROM tblSkuApex AS s1
ou mieux encore, pourquoi ne pas vous obtenez comme une agrégation normale, puisque vous demandez au maximum de la même table:
SELECT
s1.SkuApexId, s1.sku, s1.apex,
s1.btw, s1.gebruikernr, MAX(begindatum)
FROM tblSkuApex AS s1
group by
s1.SkuApexId, s1.sku, s1.apex,
s1.btw, s1.gebruikernr
note: vous pouvez omettre l'alias s1 partout
Cela fait beaucoup plus de sens, merci. – skerit