実現したいこと
oracleのプロシージャで、引数に処理区分(0,1,2のいずれか)と日付(YYYYMMDD)をもらい、区分と日付を条件に「targetTBL」からデータを取得する処理を作成したいです。
where句をどのように指定すれば実現できるかわかりません。
条件
処理区分が"0" → HOGE_FLG = '0'のデータ
処理区分が"1" → HOGE_FLG in ('0','1')のデータ
処理区分が"2" → OLD_FLG in ('0','1')のデータ
上記に加え、日付が平日(「DAY_KBN」が"01"~"04")の場合はWEEKDAY_FLG = '1'のレコードも取得したい。
平日以外はWEEKDAY_FLG = '1'のレコードは取得しない。
テーブル
CALENDAR_TBL(年間の日付が入っている)
日付 | DAY_KBN | 曜日 |
---|---|---|
2020/03/9 | 01 | 月 |
2020/03/10 | 02 | 火 |
2020/03/11 | 03 | 水 |
2020/03/12 | 04 | 木 |
2020/03/13 | 05 | 金 |
2020/03/14 | 06 | 土 |
2020/03/15 | 07 | 日 |
targetTBL
id | HOGE_FLG | WEEKDAY_FLG | OLD_FLG |
---|---|---|---|
1 | 0 | 0 | 0 |
2 | 1 | 0 | 0 |
3 | 0 | 1 | 0 |
4 | 0 | 0 | 1 |
試したこと
これに平日の条件つけるときどうしたらいいものか
select * from targetTBL where ( 処理区分 = '0' AND UP_FLG = '0' ) OR ( 処理区分 = '1' AND UP_FLG IN ('0','1') ) OR ( 処理区分 = '2' AND OLD_FLG IN ('0','1') )
回答2件
あなたの回答
tips
プレビュー