-1

不知道为什么它一直说缺少右括号,它强调了 (*) 处的错误。请帮忙,谢谢。

   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));

错误:ORA-00907:缺少右括号 00907。00000 -“缺少右括号” *原因:
*操作:第 3 行错误:第 66 列

更新:我想找出每个官员的报告数量,然后比较每个官员,找出哪些官员的报告数量大于平均报告数量。

4

2 回答 2

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))
于 2016-09-27T06:03:16.567 回答
-1

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

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

于 2016-09-27T04:31:04.300 回答