2012-04-30 12 views
2

このコードがSQLを返す原因を特定するのに誰も助けてくれますか?ORA-00904:無効なインデント化エラー?クエリはCountry = 'Argentina'なしで機能しますが、この値で絞り込む必要があります。誰かが私を正しい方向に向けることができますか?あなたがグループ化された条件でフィルタリングしている場合はSQL Oracle ORA-00904:無効なインデント化エラー

select llattrdata.ID dataid, 

max(case when llattrdata.ATTRID = 4 then llattrdata.VALSTR end) Country 

from llattrdata, dtree 

where 
llattrdata.DEFID = 19400074 and 
llattrdata.VERNUM = dtree.VERSIONNUM and 
llattrdata.ID = dtree.DATAID and 
Country = 'Argentina' 
group by llattrdata.ID 

答えて

4

、あなたはhavingの代わりwhereを使用する必要があります。

それが何かする必要があります。

select llattrdata.ID dataid, 
     max(case when llattrdata.ATTRID = 4 then llattrdata.VALSTR end) Country 
    from llattrdata, dtree 
where llattrdata.DEFID = 19400074 
    and llattrdata.VERNUM = dtree.VERSIONNUM 
    and llattrdata.ID = dtree.DATAID 
group by llattrdata.ID 
having max(case when llattrdata.ATTRID = 4 then llattrdata.VALSTR end) = 'Argentina' 
+0

感謝...これはまだ私与えましたエラーORA-00904: "COUNTRY":無効な識別子 – BvilleBullet

+0

@BillBullet - 回答を更新しました。やってみよう。 –

+0

あなたには大変感謝してくれました! – BvilleBullet

0

は、たぶん私は何かが欠けていますが、これは同じではありません。応答のための

select distinct 
    llattrdata.ID  dataid, 
    llattrdata.VALSTR Country 
from 
    llattrdata, 
    dtree 
where 
    llattrdata.VERNUM  = dtree.VERSIONNUM and 
    llattrdata.ID   = dtree.DATAID  and 
    llattrdata.DEFID   = 19400074   and 
    llattrdata.ATTRID  = 4    and 
    llattrdata.VALSTRCountry = 'Argentina'