Isso deve funcionar para você:
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
Nota:alterei o segundo
UNION
para um UNION ALL
para melhor desempenho; a última subconsulta nunca terá duplicatas com as duas primeiras subconsultas, pois DateType
é sempre 2 para os dois primeiros e 1 para o último UNION
consulta ed.