Esto debería funcionar para usted:
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:cambié el segundo UNION
a un UNION ALL
para un mejor desempeño; la última subconsulta nunca tendrá duplicados con las dos primeras subconsultas, ya que DateType
siempre es 2 para los dos primeros y 1 para el último UNION
consulta ed.