2016-05-29 164 views
0

通过表达创建视图与子查询和组为了获取特定的数据集,我在选择查询这是一组由表达式如下使用子查询:在甲骨文

SELECT SUM(b.RESERVEDROOMS) AS "Reserved Rooms", 
     (SELECT country 
      FROM location 
     WHERE location_id = b.location_id) AS "Country" 
    FROM bookingsRevenue b, 
     location l 
WHERE b.location_id = l.location_id 
GROUP BY b.location_id 

它工作正常和正确的数据被检索,但是当我尝试从它创建一个视图时,显示以下错误。你能帮我解决这个问题吗?

[错误]执行(21:74):ORA-00979:不是GROUP BY表达

+0

你为什么要使用一个标量子查询 试试这个吗? – dnoeth

回答

2
似乎

有在源代码中的混乱的。 GROUP BY子句不正确,您也不需要使用相关的子查询。如果你还想进行分组的LOCATION_ID然后

SELECT SUM(b.RESERVEDROOMS) AS "Reserved Rooms", l.country AS "Country" 
FROM bookingsRevenue b 
JOIN location l ON (b.location_id = l.location_id) 
GROUP BY l.country; 

SELECT SUM(b.RESERVEDROOMS) AS "Reserved Rooms", b.location_id, l.country AS "Country" 
FROM bookingsRevenue b 
JOIN location l ON (b.location_id = l.location_id) 
GROUP BY b.location_id, l.country; 
+0

或者你可以使用'MAX(l.country)AS country'。 – MT0

+0

是的,我认为MAX(l.country)的作品,只是有l.country给我一个错误。 非常感谢您的建议! – Manujaya