我有一个奇怪的问题,我认为这与我的查找结构的方式有关。
TABLE Category
ID
CategoryName
TABLE Product
ID
ProductName
Category - Number (SELECT [Category].[ID], [Category].[Category Type] FROM Category ORDER BY [Category Type];)
TABLE SalePrices
Several fields related to sale date, price, &c.
ProductName - Text (SELECT [Product].[ID], [Product].[Product Name] FROM Product ORDER BY [Product Name];
由于某些原因,当我运行以下查询时,我得到一个空白的结果集:
SELECT SalePrices.[Product Name], Product.[Product Name]
FROM SalePrices INNER JOIN Product ON SalePrices.[Product Name] = Product.[Product Name];
我有一个查询显示SalePrices.UnitPrice
的MIN,我想用ProductName
和CategoryName
显示,但我没有得到结果,所以我想简化事先。
当我加入产品和类别时,我必须匹配Product.[Category Type] = Category.ID;
,但当我尝试SalePrices.[Product Name] = Product.[ID];
时,我收到TYPE MISMATCH
错误。我不确定我哪里出错了。
最终目标是合并SalesPrices
< - > ProductName
加入这个:
SELECT Product.[Product Name], Category.[Category Type]
FROM Product INNER JOIN Category ON Product.[Category Type] = Category.ID;
答案 0 :(得分:1)
正如@Scotch和@HansUp的评论中所建议的那样,在Access表中定义“查找”字段通常被认为是除了最微不足道的案例之外的所有错误想法。它们隐藏了数据库中的实际内容,当您实际尝试使用时,它们会导致各种混淆(正如您所发现的那样)。 (参考:here,来自@HansUp的评论。)
您最好的做法是使用包含相关表中ID(键)值的常规数字字段替换表中的“查找”字段。然后,如有必要,您可以创建并保存选择查询以显式执行查找并显示之前出现在[Product]
和[SalePrices]
数据表视图中的结果。