2014-04-16 55 views
-2

表DESC:意见SQL Oracle查询

Product (Prodid, Prodesc, Price, Stock) 
Sales (Saleid, Proid, qty, custname) 

QUERY:

Create a view which displays Proid, Prodesc and sum of quantity in sales. 

我试过很多次创建视图反而导致这样的错误不是单一GROUP函数,不是GROUP BY表达。解决方案请。

错误:

a)不GROUP BY:

create or replace view sale_vs as select * from(select prodesc,proid,sum(qt 
y) from sales,product group by proid); 

b)并非单组:

create or replace view sale_vs as select product.prodid,product.prodesc,sum 
(qty) from product,sales where sales.proid=product.prodid; 
+0

这将会作弊;-)您尝试了什么SQL?告诉我们,我们也许可以指出你错在哪里。现在不用介意创建视图,只需编写它将基于的SELECT语句即可。 –

+0

现在?...我哪里出错了? – Goks

+1

谢谢。那么,编写聚合查询的规则是,SELECT子句中不是聚合函数(SUM等)的所有列也必须在GROUP BY子句中指定 - 所以'SELECT a,b,c,SUM(d)例如,从x GROUP BY a,b,c'。 –

回答

1

尝试此查询: -

create or replace view myView as 
select p.Prodid Product_ID, p.Prodesc Product_description, sum(s.qty) Sum_of_qty 
from product p, sales s where p.Prodid= s.Proid group by p.prodid, p.prodesc 

这里的sqlfiddle http://www.sqlfiddle.com/#!4/02820/2

+0

它说在第1行的错误: ORA-00904:“P”。“PROID”:无效标识符:( – Goks

+0

查询编辑。现在就试试。 –

+0

其实这是错误:错误在第1行: ORA-00998:必须命名该表达式与列别名 – Goks