質問: k.日付) where m.日付 <= '20171105' order by m.日付 ``` 取得結果 ![結果](https://teratail.storage.googleapis.com/uploads/contributed_images/120091524277da6bf4d6e6385add0741.jpeg) 上記のように未来日の2017/11/5が駄目です。 ここにはNULLが表示されて欲しいのですが・・・。 このような場合、どのようなSQLになるでしょうか? 宜しくお願い致します。 補足 DBMSの記載が漏れました。すみません。 SQL Serverです。
回答: 少し修正しました。 下記のような形ではいかがでしょうか。 ``` SELECT m.日付 , m.区分 AS カレンダー , CASE WHEN m.日付 <= CONVERT(NVARCHAR, GETDATE(), 112) THEN COALESCE(k.勤怠, m.区分) ELSE NULL AS 勤怠実績 , k.出勤時間 , k.退社時間 FROM 会社カレンダー AS m LEFT JOIN 出勤簿 AS k ON (m.日付 = k.日付) WHERE m.日付 <= '20171105' ORDER BY m.日付 ```