Detta borde fungera för dig:
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
Obs! Jag ändrade den andra UNION
till en UNION ALL
för bättre prestanda; den sista underfrågan kommer aldrig att ha dubbletter med de två första underfrågorna, eftersom DateType
är alltid 2 för de två första och 1 för den sista UNION
ed fråga.