Cela devrait fonctionner pour vous :
SELECT MyDate, min(DateType) as DateType
FROM (
SELECT mydate - 1 AS MyDate, 2 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
UNION
SELECT mydate + 1 AS MyDate, 2 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
UNION ALL
SELECT mydate AS MyDate, 1 AS DateType
FROM myTable
WHERE myTable.fkId = @MyFkId;
) AS myCombinedDateTable
group by MyDate
Remarque :j'ai changé le deuxième UNION
à un UNION ALL
pour de meilleures performances ; la dernière sous-requête n'aura jamais de doublons avec les deux premières sous-requêtes, puisque DateType
vaut toujours 2 pour les deux premiers, et 1 pour le dernier UNION
e requête.