2017-04-19 29 views
0

SQLコードで無効な識別子エラーがどこで発生しているのかを理解しようとしています。出力状態は、 "ジョイント"機能の下の "on"機能の後の "コマンドラインでのエラー:9カラム:10"です。どんな助けでも大歓迎です。ここで識別子が無効ですか?

は私のコードです:

select 
    TO_CHAR(TRUNC("SITE_UPLOAD_DATA_UPLOAD_TIME", 'MM'), 'MON') as month, 
    cast (avg("DATA_POINT_UPLOAD_DATA"."value") as int) as "PAST_VALUE" 
from 
    "TEST"."DATA_POINT_UPLOAD_DATA", 
    "TEST"."COMPONENT_UPLOAD_DATA" 
    join 
     "TEST"."COMPONENT_DATA_POINT" 
     on "DATA_POINT_UPLOAD_DATA"."COMPONENT_DATA_POINT_ID" = "COMPONENT_DATA_POINT"."ID" 
where 
    "COMPONENT_DATA_POINT"."NAME" = 'ready_go' 
    and "COMPONENT_UPLOAD_DATA"."SITE_UPLOAD_DATA_SITE_ID" = ('abc123') 
    and "SITE_UPLOAD_DATA_UPLOAD_TIME" between TRUNC (ADD_MONTHS ('01-MAR-17', - 13), 'MM') and TRUNC (LAST_DAY (ADD_MONTHS ('31-MAR-17', - 1)) + 1) 
group by 
    TRUNC("SITE_UPLOAD_DATA_UPLOAD_TIME", 'MM'), 
    "COMPONENT_UPLOAD_DATA"."SITE_UPLOAD_DATA_SITE_ID" 
order by 
    TRUNC("SITE_UPLOAD_DATA_UPLOAD_TIME", 'MM') desc; 
+0

を指定しているのに対し、あなたは2 JOINを持っている必要がありますFROM'節。 *常に*明示的に適切な 'JOIN'構文を使用します。それがあなたの問題の根源です。 –

+0

Oracle BI Publisherでこれを実行することは重要ですか?私は、Oracle BI Publisherにはgoofy SQL構文があることがわかっています。 – Fadiddy

答えて

0

私はあなたの投稿をクエリからわかるように、あなたが* `にカンマを使用しないでください*一つだけJOIN ON条件

from 
    "TEST"."DATA_POINT_UPLOAD_DATA" 
    JOIN "TEST"."COMPONENT_UPLOAD_DATA" ON <some_condition> 
    join 
     "TEST"."COMPONENT_DATA_POINT" 
     on "DATA_POINT_UPLOAD_DATA"."COMPONENT_DATA_POINT_ID" = "COMPONENT_DATA_POINT"."ID" 
+0

@Fadiddyの場合、内部結合の代わりに 'left join'を実行することを検討してください – Rahul