试图从另一个视图创建一个视图? Oracle顶点

问题描述 投票:0回答:1

我有一个尝试已经解决了一段时间的作业,但我无法完成

的第一个问题是“1。创建一个视图VE1,其中将显示customer_id,cust_title和每个客户的总金额。”所以我创建了第一个视图

 CREATE OR REPLACE FORCE VIEW "VE_1" ("CUST_ID", "CUST_TITLE", "TOTAL_AMOUNT") AS 
  SELECT Customer.cust_id,customer.cust_title,
SUM(lead.amount) AS Total_amount
FROM customer,lead
WHERE customer.cust_id=lead.cust_id
GROUP BY customer.cust_id,customer.cust_title
ORDER BY customer.cust_id
/

因此,在创建视图后(我不确定这是否是正确的答案)。这个问题二是我发布这个问题的主要原因“您想要与1中相同的组结果,但仅针对总金额超过25,000(HAVING)的客户。您可以使用VE1中的连续视图VE2来执行此操作吗?查看VE3”。所以我尝试了这段代码

CREATE OR REPLACE FORCE VIEW "VE_2" ("CUST_ID", "CUST_TITLE", "TOTAL_AMOUNT") AS 
  SELECT VE_1.cust_id,VE_1.cust_title,
SUM(lead.amount) AS Total_amount
FROM VE_2
WHERE customer.cust_id=lead.cust_id
GROUP BY customer.cust_id,customer.cust_title
HAVING
    count( amount ) > 25000
ORDER BY customer.cust_id
/

它说“编译失败,第0行(17:14:40)ORA-01731:遇到了圆形视图定义”

请帮助!

sql oracle view oracle-apex-5.1
1个回答
0
投票

您会收到此错误,因为您正试图从将要创建的视图中进行选择。此外,您还引用了customer子句中未介绍的leadFROM。所以那也必须失败。

© www.soinside.com 2019 - 2024. All rights reserved.