Ini akan bekerja untuk Anda:
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
Catatan:Saya mengubah UNION
kedua ke UNION ALL
untuk kinerja yang lebih baik; subkueri terakhir tidak akan pernah memiliki duplikat dengan dua subkueri pertama, karena DateType
selalu 2 untuk dua yang pertama, dan 1 untuk UNION
terakhir permintaan ed.