在 SQL 中查询 VIEW

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

我写了这个观点:

CREATE VIEW productSalesYear AS
SELECT p.productName AS "Product Name", YEAR(o.orderDate) AS "Year",  SUM(od.quantityOrdered * od.priceEach) AS "Sales Total"
FROM products p
JOIN orderdetails od ON p.productCode = od.productCode
JOIN orders o ON od.orderNumber = o.orderNumber
GROUP BY p.productName, YEAR(o.orderDate);

现在我需要查询productSalesYear视图以显示“2001 Ferrari Enzo”在2004年的每年销量。

SELECT *
FROM productSalesYear
WHERE p.productName = '2001 Ferrari Enzo' AND YEAR(o.orderDate) = 2004;

但是,这个查询不起作用,我无法返回任何结果。我做错了什么以及如何查询 VIEW?

SELECT *
FROM productSalesYear
WHERE "Product Name" = '2001 Ferrari Enzo' AND "Year" = 2004;

即使返回一个空集,上面的内容是否正确?

sql view
1个回答
0
投票

查询视图时,您只能通过为视图中的列定义的别名来引用视图返回的列。

您不能通过视图查询的表中的原始名称来引用列。您无法引用单个表名称或表别名(例如

p.*
o.*
)。

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