【发布时间】:2016-07-01 07:56:08
【问题描述】:
使用此代码:
SELECT COUNT (*) FROM pcpedc WHERE pcpedc.numped IN (
SELECT numped FROM pcpedc
WHERE pcpedc.DATA = TO_DATE('15-MAR-2016','DD/MM/YYYY')
AND pcpedc.hora < 16
AND pcpedc.posicao = 'L'
AND pcpedc.dtinicialcheckout IS NULL
AND pcpedc.horalibera IS NULL
UNION
SELECT numped FROM pcpedc WHERE pcpedc.DATA < TO_DATE('15-MAR-2016','DD/MM/YYYY')
AND pcpedc.posicao = 'L'
AND pcpedc.dtinicialcheckout IS NULL
UNION
SELECT numped FROM pcpedc WHERE pcpedc.DATA = TO_DATE('15-MAR-2016','DD/MM/YYYY')
AND pcpedc.hora < 16
AND pcpedc.posicao = 'L'
AND pcpedc.dtinicialcheckout IS NULL)
A 出现与括号相关的错误,如下所示:
14:45:58 ORA-00907: 缺少右括号
有什么建议吗?提前致谢。
【问题讨论】:
-
您在哪个客户端运行它 - SQL*Plus?如果是,
show sqlblanklines报告了什么? -
如果你从 sqlplus 运行它,我猜你错过了一个
semi-colon来终止你的语句 -
这个查询显然没有问题。可能错误来自其他代码。
-
看起来没什么问题,尽管它不一定会返回你想要的那些 TO_DATE('15-MAR-2016','DD/MM/YYYY') 语句,其中你有硬编码的 dd-使用 dd/mm/yyyy 格式化的 mon-yyyy 值!
-
很好发现@Michael Broughton。一旦 OP 解决了最初的问题(可能通过删除空白行和/或添加分号),这将是他们获得的下一个 ORA 异常。
标签: sql oracle count union parentheses