To powinno działać dla Ciebie:
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
Uwaga:zmieniłem drugą UNION
do UNION ALL
dla lepszej wydajności; ostatnie podzapytanie nigdy nie będzie miało duplikatów z pierwszymi dwoma podzapytaniami, ponieważ DateType
to zawsze 2 dla pierwszych dwóch i 1 dla ostatniego UNION
ed zapytanie.