我刚刚发现Access,一直是Excel / VBA的人...现在我遇到了障碍!
我正在为我的雇主建立一个库存数据库。我有2个表,一个包含一列'stockID'(让我们调用此表'tblWarehouse'),另一个包含两列:一列'orderID'和一列'stockID'(让我们称之为'tblOrders')。 (为了这个问题,我们可以忽略诸如数量,价格等事情)
我们不会将我们销售的所有商品保留在我们自己的仓库中,有些是直接从制造商处采购给客户,这意味着并非所有tblOrders!stockID都将出现在列表tblWarehouse!stockID中。我需要找出这种情况的时候!
我想在tblOrders中创建第三列,如果该特定项目在我们的仓库中,则包含虚拟变量= 1。换句话说,如果tblOrders!stockID可以在tblWarehouse!stockID中找到,我想创建一个计算列= 1。可以这样做吗?
我发现我不能直接引用另一个表,所以我一直在尝试查询,用户定义的函数和关系,但无济于事。我也一直在使用不同地方的Access-lingo和名副其实的森林来输入看似相同的表达式......所以,如果你有答案,请务必指明事情的位置!
非常有责任!!
答案 0 :(得分:0)
如果使用内部联接在查询中链接两个表,则只有至少有一个库存条目的订单记录才会包含在结果中。为了包括那些根本没有库存条目的人,请创建一个左外连接。
SELECT O.OrderID, IIf(IsNull(MAX(W.StockID)), 0, 1) AS StockAvailable
FROM
tblOrder O
LEFT JOIN tblWarehouse W
ON O.StockID = W.StockID
GROUP BY O.OrderID
您还可以通过右键单击关系线并选择“加入属性”,然后选择“包括来自tblOrders
的所有记录...”来确定查询设计器中的连接类型。您可以通过单击符号列表中的大型Sigma符号来进行分组查询。