oracle 两个选择上的 UNION 给出“SQL 错误:ORA-00907:缺少右括号”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2380733/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 20:07:46 来源:igfitidea点击:
UNION on two select gives 'SQL Error: ORA-00907: missing right parenthesis'
提问by jai
I'm trying to UNION the results of two queries. But I'm getting the following error:
我正在尝试联合两个查询的结果。但我收到以下错误:
Error at Command Line:9 Column:81
Error report:
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
Here's my query:
这是我的查询:
SELECT application_id, clicks, datee, client_id FROM(
(select
APPL_CD AS application_id,
count(*) as clicks,
to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee,
ALRT_RSPNS_FROM_CLIENT_ID AS client_id
from ALRT_PLATFORM_ALRT_HSTRY
where ACTN_TAKE_CD is not null
group by to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy'), APPL_CD, ALRT_RSPNS_FROM_CLIENT_ID order by datee)
UNION ALL
(select
APPL_CD AS application_id,
count(*) as clicks,
to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee,
ALRT_RSPNS_FROM_CLIENT_ID AS client_id
from ALRT_PLATFORM_ALRT
where ACTN_TAKE_CD is not null
group by to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy'), APPL_CD, ALRT_RSPNS_FROM_CLIENT_ID order by datee )
)
回答by Quassnoi
Remove the ORDER BY
from the nested queries:
ORDER BY
从嵌套查询中删除:
SELECT application_id, clicks, datee, client_id FROM(
(select
APPL_CD AS application_id,
count(*) as clicks,
to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee,
ALRT_RSPNS_FROM_CLIENT_ID AS client_id
from ALRT_PLATFORM_ALRT_HSTRY
where ACTN_TAKE_CD is not null
group by to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy'), APPL_CD, ALRT_RSPNS_FROM_CLIENT_ID)
UNION ALL
(select
APPL_CD AS application_id,
count(*) as clicks,
to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee,
ALRT_RSPNS_FROM_CLIENT_ID AS client_id
from ALRT_PLATFORM_ALRT
where ACTN_TAKE_CD is not null
group by to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy'), APPL_CD, ALRT_RSPNS_FROM_CLIENT_ID )
)