Sql 指定的字段(价格)可以引用多个表
指定的字段(价格)可以引用SQL语句的from子句中列出的多个表。基于以下内容Sql 指定的字段(价格)可以引用多个表,sql,ms-access,Sql,Ms Access,指定的字段(价格)可以引用SQL语句的from子句中列出的多个表。基于以下内容 SELECT Customers.FirstName, Customers.LastName, Orders.OrderDate, Products.ProductName, Products.Price, Products.BatchSize, [Price]*[BatchSize] AS [Full Price] FROM Products INNER JOIN ((Customers INNER JOIN Or
SELECT Customers.FirstName, Customers.LastName, Orders.OrderDate, Products.ProductName, Products.Price, Products.BatchSize, [Price]*[BatchSize] AS [Full Price]
FROM Products INNER JOIN ((Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID) ON Products.ProductID = OrderDetails.ProductID;
指定要使用的表的名称:
OrderDetails.[Price]*[BatchSize]
或:
是的,没错。与字段
BatchSize
相同
在公式中使用全价
的字段时,您没有指定表的名称,如果您的帖子标题碰巧与导致您发布帖子的错误消息相对应,则OrderDetails
表中很可能还有一个名为价格
的字段,因此,Access不知道在计算值时使用这两个字段中的哪一个(因为您在查询中访问两个表)。你想做的大概是:
SELECT Customers.FirstName, Customers.LastName, Orders.OrderDate, Products.ProductName,
Products.Price, Products.BatchSize, Products.[Price]*Products.[BatchSize] AS [Full Price]
FROM Products INNER JOIN
((Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) INNER JOIN
OrderDetails ON Orders.OrderID = OrderDetails.OrderID)
ON Products.ProductID = OrderDetails.ProductID;
但是:如果您的OrderDetails
表也包含Price
,请不要简单地告诉Access使用Products
表中的字段,而是在询问您自己(或了解数据库结构的人)要指定哪一个表(也针对查询中的第5个字段)之前。可能产品
表中的价格
是购买价格,客户必须支付的价格存储在订单详情
表中(类似于Northwind样本数据库)
SELECT Customers.FirstName, Customers.LastName, Orders.OrderDate, Products.ProductName,
Products.Price, Products.BatchSize, Products.[Price]*Products.[BatchSize] AS [Full Price]
FROM Products INNER JOIN
((Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) INNER JOIN
OrderDetails ON Orders.OrderID = OrderDetails.OrderID)
ON Products.ProductID = OrderDetails.ProductID;