2016-09-27 51 views
-1

不知道为什么它一直说缺少右括号,它强调(*)的错误。请帮忙,谢谢。SQL Oracle在计数中缺少右括号?

SELECT FIRST, LAST 
    FROM OFFICERS 
    WHERE OFFICER_ID IN (SELECT OFFICER_ID FROM CRIME_OFFICERS COUNT(*) as TotalReportsOfficer     
    GROUP BY OFFICER_ID 

    HAVING TotalReportsOfficer > ((SELECT COUNT(CRIME_ID) from CRIME_OFFICERS))/ (SELECT COUNT(OFFICER_ID) from OFFICERS)); 

Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" *Cause:
*Action: Error at Line: 3 Column: 66

更新: 我想找到的报告的每个军官有数量比比较他们每个人找出哪些官员有一个数字,比报告的平均量。

+0

也许有**(SELECT OFFICER_ID FROM CRIME_OFFICERS COUNT(*)作为TotalReportsOfficer ** – 1000111

+0

你有什么期望从'CRIME_OFFICERS COUNT(*) “要做什么? –

回答

-1

因为您在FROM后有COUNT(*);这不是Oracle SQL语法(或者,实际上是ANY SQL语法)。

如果你想分享这个查询的目的(你想要做什么,用简单的英语),也许我们可以帮助你提出一个工作解决方案。你想在那里做什么?

+0

我想找出每位军官的报告数量,然后比较每个军官的报告数量,以便找出哪些军官的数字大于平均报告数量。 –

0


嗨,
您可以使用下面的查询,

SELECT OF.FIRST, OF.LAST FROM OFFICERS OF 
    INNER JOIN (SELECT OFFICER_ID, COUNT(*) AS TotalReportsOfficer FROM OFFICERS 
    GROUP BY CRIME_OFFICERS) COF 
    ON (OF1.OFFICER_ID =COF.OFFICER_ID) 
    HAVING COF.TotalReportsOfficer > ((SELECT COUNT(CRIME_ID) from CRIME_OFFICERS)/(SELECT COUNT(OFFICER_ID) from OFFICERS))