Union All的SQL命令未正确结束

Union All的SQL命令未正确结束,sql,oracle11g,union-all,Sql,Oracle11g,Union All,我无法理解代码中的错误。谁能帮帮我吗 这是我的sql查询 SELECT S.SUBSTR(ASSIGNED_NUMBER, -4) FROM ( SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4) UNION ALL SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GRO

我无法理解代码中的错误。谁能帮帮我吗

这是我的sql查询

SELECT S.SUBSTR(ASSIGNED_NUMBER, -4) FROM (
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
   UNION ALL
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
) AS S GROUP BY S.SUBSTR(ASSIGNED_NUMBER, -4);
注意:最初,我的外部列是S.SDATE,并将其编辑为S.SUBSTR(分配的\u编号,-4)

输出:

ORA-00933:SQL命令未正确结束
93300000-“SQL命令未正确结束”

顺便说一下,my
ASSIGNED_NUMBER
列中的样本日期是
58-2016
。 当您在SDATE的子查询别名中指定了列时,我使用substring获取您正在使用的S.SUBSTR(分配的\u编号,-4)

另外,当使用子查询时,命名应该是
)s
而不是
)AS s

您的查询应该是

SELECT S.SDATE FROM (
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
   UNION ALL
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
) S GROUP BY S.SDATE;
当您在SDATE的子查询别名中指定了列时,您正在使用S.SUBSTR(分配的_编号,-4)

另外,当使用子查询时,命名应该是
)s
而不是
)AS s

您的查询应该是

SELECT S.SDATE FROM (
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
   UNION ALL
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
) S GROUP BY S.SDATE;


您在外部查询选择中使用了错误的列除了在注释和答案中指出的其他问题外,您还有
S.SUBSTR(已分配的\u编号)
您可能想要的
SUBSTR(已分配的\u编号)
。查询别名
S
应附在列名之前,而不是函数名
SUBSTR
之前!您在外部查询选择中使用了错误的列除了在注释和答案中指出的其他问题外,您还有
S.SUBSTR(已分配的\u编号)
您可能想要的
SUBSTR(已分配的\u编号)
。查询别名
S
应附在列名之前,而不是函数名
SUBSTR
之前!这是我的原始代码,我刚刚更改了它,但它返回了相同的错误。我明白了,是你做的。谢谢,先生!这是我的原始代码,我刚刚更改了它,但它返回了相同的错误。我明白了,是你做的。谢谢,先生!这是我的原始代码,我刚刚更改了它,但它返回了相同的错误。您能够使用内部查询生成输出吗?是的。里面的两个查询正在工作。我正在尝试使用union all组合输出,但没有成功。好吧,那么您的union all查询一开始就不起作用了?只是想确认一下…根据Marcus H的回答,它现在可以工作了。谢谢您的回复。这是我的原始代码,我刚刚更改了它,但它返回了相同的错误。您能用内部查询生成输出吗?是的。里面的两个查询正在工作。我正在尝试使用union all组合输出,但没有成功。好吧,那么您的union all查询一开始就不起作用了?只是想确认一下…根据Marcus H的回答,它现在可以工作了。谢谢主席先生的回应。