0

2つのクエリ出力データをデュアルで1つに評価する方法。

以下のようにできますか?しかし、statusBが見つからないというエラーが発生しています。

 select case when (statusA is NULL or statusA ='N') and (statusB is NULL or statusB ='N') then 'N'
   else 'Y' from 
   (
     select statusA from test
     union
     select statusB from test1
   ) dual;

以下の表を評価しようとしています

table1 からの statusA table2 からの statusB 結果
  Y null またはデータなし Y
  N null またはデータなし N
null またはデータなし YY
null またはデータなし NN
  YYY
  YNY
  null null N
  NNN

よろしく、チャトゥハラ

4

3 に答える 3

0

テーブルのテストを次のようにします。

id  statusa
1   Y
2   N
3   null or no data
4   null or no data
5   Y
6   Y
7   
8   N

およびテーブルtestb:

id      statusb
1   null or no data
2   null or no data
3   Y
4   N
5   Y
6   N
7   
8   N

次のことができるようになりました。

SELECT STATUSA, STATUSB,  CASE WHEN new_statusa  = 'Y' OR new_statusb = 'Y' THEN 'Y' ELSE 'N' END RESULT
FROM
(SELECT STATUSA, STATUSB, CASE WHEN statusa IS NOT NULL AND statusa <> 'Y' THEN 'N' ELSE nvl(STATUSa,'N') END new_statusa,
     case when statusB is not null and statusB <> 'Y' THEN 'N' ELSE nvl(STATUSB,'N') end new_statusb
FROM TESTa
JOIN testb USING (id));
于 2013-09-06T11:03:15.680 に答える