いつもお世話になっております。
会社カレンダーと出勤簿を元に、
勤務の予定と実績を表示したいと思います。
・会社カレンダーは、全行(365日分)が入ってるとします。
・出勤簿は、出勤した日のみ行がインサートされます。
「勤務実績」には
1.勤務していれば勤務実績を表示
2.勤務してなければ会社カレンダーの区分(営業日か休日)を表示
3.未来日は実績ないのでNULLで表示
としたいです。
以下のようなSQLで取得しましたが、未来日の場合が駄目です・・・orz
マスタの区分が表示されてしまいます。
例えば、今日は2017/11/04と仮定、2017/11/05までを取得したとします。
SQL
1 2select m.日付, m.区分 as カレンダー, coalesce(k.勤怠, m.区分, null) as 勤怠実績, k.出勤時間, k.退社時間 3from 会社カレンダー as m 4left join 出勤簿 as k 5on(m.日付 = k.日付) 6where m.日付 <= '20171105' 7order by m.日付 8
上記のように未来日の2017/11/5が駄目です。
ここにはNULLが表示されて欲しいのですが・・・。
このような場合、どのようなSQLになるでしょうか?
宜しくお願い致します。
補足
DBMSの記載が漏れました。すみません。
SQL Serverです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/02 01:34