これでうまくいくはずです:
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
注:2 番目の UNION
を変更しました UNION ALL
に より良いパフォーマンスのために; DateType
であるため、最後のサブクエリが最初の 2 つのサブクエリと重複することはありません。 最初の 2 つは常に 2 で、最後の UNION
は 1 です。 ed クエリ。