前提・実現したいこと
以下のテーブルにてSQLを実行しておりますが、エラーとなってしまいます。
then旬に複数の処理を書きたいのですが、うまく実行できません。
then句には条件を2つ以上書くことはできないのでしょうか?
また、条件を2つ以上書く以外に、
同様の処理を実行する方法はございますでしょうか
実現したいこと:
変更キー列が空白の列と、
変更キー列がSTARTかつ変更日が今月以降の列、以前ならENDの列を取得したいです。
※サンプルテーブル
|親部品|子部品|変更キー|変更年月|
|:--|:--:|--:|
|AAA|a-000| |000000|
|AAA|a-000| |000000|
|AAA|a-111|END|202109|
|AAA|a-999|START|202110|
|CCC|c-000| |000000|
|CCC|c-111|END|202110|
|CCC|c-999|START|202111|
|BBB|b-000| |000000|
|BBB|b-111|END|202108|
|BBB|b-999|START|202109|
↓↓↓↓↓↓↓↓↓取得したい結果↓↓↓↓↓↓↓↓↓↓
|親部品|子部品|変更キー|変更日|
|:--|:--:|--:|
|AAA|a-000| |000000|
|AAA|a-000| |000000|
|AAA|a-999|START|202110|
|CCC|c-000| |000000|
|CCC|c-111|END|202110|
|BBB|b-000| |000000|
|BBB|b-999|START|202109|
該当のソースコード
SQL
1select * 2from サンプルテーブル 3where (親部品 like 'AAA' or 親部品 like 'BBB') 4and (CASE WHEN 変更キー like ' ' then 'OK' 5 WHEN 変更キー like 'S' and to_char(sysdate,'YYYYMM') >= 変更日 then 'OK' and 変更キー like 'E' = 'NG' 6 else 'NG' end ) = 'OK' ↑ ここです ↑
補足情報(FW/ツールのバージョンなど)
oracle SQL
回答1件
あなたの回答
tips
プレビュー