2013-10-31 53 views
0

我正在为一个库存系统构建一个简单的数据库,并带有条形码读取器。我有一种形式可以添加库存,一种形式可以删除库存。每次调整都会向添加或删除表中添加一列。访问两个子查询连接

我为我的添加和删除查询返回每个项目的总价值,与每个项目的id相关联。我想加入我的添加和删除表格,以便我可以计算当前数量的差异。

我遇到了加入我的添加子查询和我删除子查询的麻烦。

地址:

SELECT Items.description, Count(Trans_Add.s) AS Quantity 
FROM Items INNER JOIN Trans_Add ON Items.ID = Trans_Add.s 
GROUP BY Items.description; 

删除:

SELECT Items.description, Count(Trans_Remove.s) AS Quantity 
FROM Items INNER JOIN Trans_Remove ON Items.ID = Trans_Remove.s 
GROUP BY Items.description; 

每当我试图从我的新查询的WHERE子句用于无论是在分配别名加入他们这是行不通的。

+0

你能发布你的“新查询”吗? –

回答

2

尝试:

SELECT Items.ID, Items.Description, (Items.TotalCount + A.Quantity - B.Quantity) as OnHandQty 
FROM Items INNER JOIN 
(SELECT Items.ID, Count(Trans_Add.s) AS Quantity 
FROM Items INNER JOIN Trans_Add ON Items.ID = Trans_Add.s 
GROUP BY Items.description 
) A 
ON Items.ID = A.ID 
INNER JOIN (
SELECT Items.description, Count(Trans_Remove.s) AS Quantity 
FROM Items INNER JOIN Trans_Remove ON Items.ID = Trans_Remove.s 
GROUP BY Items.description 
) B 
ON Items.ID = B.ID 

我编了一个名为TotalCount现场,因为你没有提到什么是Items表中的项目数量。因此,请相应地更改它,即根据Items表中 项目数量的右侧字段名称。

+0

感谢您的回应和帮助。我实现了你给我的东西,而且现在我在查询表达式“items.id = a.id ...”中收到“missing operator”的语法错误。 – user2941143

+0

您的字段名称是根据select语句和ON子句中的ItemID你正在使用ID,纠正它到Items.ItemID –

+0

没关系,我能够从那里得到它。 – user2941143