2017-04-19 179 views
0

我想了解無效標識符錯誤發生在我的SQL代碼中的位置。輸出狀態,「連接」功能下的「開」功能之後的「命令行錯誤: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

*不要*使用逗號在' FROM'子句。 *總是*使用明確的'JOIN'語法。這是你問題的根源。 –

+0

我在Oracle BI Publisher中執行此操作有什麼關係嗎?我知道Oracle BI Publisher有一個愚蠢的SQL語法。 – Fadiddy

回答

0

當我從您發佈的查詢看看你應該有兩個JOIN而你只指定了一個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'而不是'inner join' – Rahul