2017-04-19 180 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