こんにちは - 下記の質問であなたの助けが必要です。私は、グループに下記の下のクエリを実行しようとしているが、私は次のエラーを取得する:oracle - case文とグループby
ORA-00904:” SALES_ID_CO”:invalid identifier
あなたはこれを助けてくださいことはできますか?どうもありがとう。
Select
count(1),
sales_date,
CASE
WHEN sales_id like '1%'
THEN substr(sales_id,2,6)
WHEN sales_id like '3%'
THEN substr(sales_id ,2,6)
WHEN sales_id like '4%'
THEN substr(sales_id ,2,6)
WHEN sales_id like '5%'
THEN substr(sales_id ,2,6)
WHEN sales_id like '9%'
THEN substr(sales_id ,1,6)
WHEN sales_id like '70%' OR sales_id like '90%' OR sales_id like '31%'
THEN substr(sales_id ,2,6)
END AS SALES_ID_CO,
case
WHEN sales_branch like '10%' AND sales_code<> '678 '
THEN substr(sales_branch,2,6)
WHEN sales_branch like '200%' AND sales_code<> '678 '
THEN substr(sales_branch,2,6)
WHEN sales_branch like '300%' AND sales_code<> '678 '
THEN substr(sales_branch,2,6)
WHEN sales_branch like '456%' AND sales_code<> '678 '
THEN substr(sales_branch,2,6)
END AS SALES_BRANCH
from tbl_sales_cde
where sales_country IN (‘USA’,’ASIA’,’EU’)
group by SALES_ID_CO, SALES_BRANCH,SALES_DATE
最初の 'CASE'文の最後の' WHEN'に 'THEN'節がありません。 2番目の 'CASE'ステートメントから' LIKE'ステートメントもすべて抜け出しました。 – MT0
'CASE'句が順番に実行されます。したがって、 'sales_id'が'90% 'のようなものは決してありません。なぜなら、' sales_id 'が' 9% 'のように前に一致するからです。 – Steven