3つの結果があるCASE文に基づいて値を返すSQL文を記述したいとします。CASE文が真のときに別のテーブルの値を返すSQL
1)列の値が「C0」で始まる場合、それはテーブル
2の二つの列の連結を返す)カラムが「L0」で始まる場合、別のカラム(_PARENT_PROJECT_NUMBER)の値を取りますその値が別のテーブルにあるかどうかを確認します。そうでない場合は、値_PARENT_PROJECT_NUMBERを戻します。
3)_PARENT_PROJECT_NUMBERが他のテーブルに存在する場合は、別のテーブル「Rollup_Project_Mapping」の「Rollup_Project」列の値を返します。
次の文は、12行目以外ではうまくいきます。"Rollup_Project_Mapping"."Rollup_Project"
_PARENT_PROJECT_NUMBERが他のテーブルにある場合、他のテーブルの値を返すようにします。エラーメッセージは次のとおりです。
ERROR: syntax error at or near "FROM"
LINE 12: FROM "Rollup_Project_Mapping"."Rollup_Project"
CASE文のこの部分が真の場合、他の表の値をどのように戻すことができますか?
SELECT
CASE
WHEN LEFT("_PROJECT_NUMBER",2)='C0' THEN
'('||"_PROJECT_NUMBER"||') '||"_PROJECT_DESCRIPTION"
WHEN LEFT("_PROJECT_NUMBER",2)='L0' THEN
CASE
WHEN (SELECT "Rollup_Project" FROM "Project_Rollup_Mapping" WHERE "PA_ACCOUNTED_TEST"."_PARENT_PROJECT_NUMBER" = "Project_Rollup_Mapping"."Project") IS NOT NULL THEN
"Rollup_Project_Mapping"."Rollup_Project"
ELSE "_PARENT_PROJECT_NUMBER"
END
END AS Rollup_Project2
FROM "PA_ACCOUNTED_TEST";
ありがとうございます!完璧に働いた! – christopheralan88