指定的字段(价格)可以引用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 Orders ON Customers.CustomerID = Orders.CustomerID) INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID) ON Products.ProductID = OrderDetails.ProductID;
答案 0 :(得分:0)
指定要使用的表的名称:
OrderDetails.[Price]*[BatchSize]
或:
Products.[Price]*[BatchSize]
答案 1 :(得分:0)
是的,没错。与字段BatchSize
相同。
在Full Price
的公式中使用字段时,您没有指定表的名称,并且如果帖子的标题很可能与导致您发布帖子的错误消息相对应,则在那里也是Price
表中一个名为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个字段)。也许Price
表中的Products
是购买价格,而客户必须支付的价格存储在OrderDetails
表中(类似于Northwind示例数据库)。