Điều này sẽ phù hợp với bạn:
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
Lưu ý:Tôi đã thay đổi UNION
thứ hai đến một UNION ALL
để có hiệu suất tốt hơn; truy vấn con cuối cùng sẽ không bao giờ có bản sao với hai truy vấn con đầu tiên, vì DateType
luôn là 2 cho hai đầu tiên và 1 cho UNION
cuối cùng truy vấn ed.