Das sollte für Sie funktionieren:
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
Hinweis:Ich habe die zweite UNION
geändert zu einem UNION ALL
für bessere Leistung; Die letzte Unterabfrage wird niemals Duplikate mit den ersten beiden Unterabfragen haben, seit DateType
ist immer 2 für die ersten beiden und 1 für die letzte UNION
ed-Abfrage.