首页 > 解决方案 > 将表 1 和表 2 的数量相加,然后减去以查看库存(Access SQL)

问题描述

我在Access数据库中有两个表。两个表结构相同。第一个表用于事务输入,第二个表用于事务输出。我试图得到每个项目的Transaction In总和Transaction Out,然后显示Stock。请参阅下面我的表格结构和数据的屏幕截图。

在此处输入图像描述

我正在使用下面的查询,这给了我错误的输出。

SELECT TABLE1.ID, Sum(TABLE1.qty) AS TR_In, Sum(TABLE2.qty) AS TR_Out, Sum(TABLE1.qty)-Sum(TABLE2.qty) AS Stock
          FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.ID = TABLE2.ID
GROUP BY TABLE1.ID;

在此处输入图像描述

我的预期输出如下

在此处输入图像描述

表1 数据

ID 描述 数量
RM001 项目1 3
RM001 项目1 3
RM002 项目2 2
RM003 第 3 项 1
RM003 第 3 项 1

表2 数据

ID 描述 数量
RM001 项目1 1
RM001 项目1 1
RM001 项目1 1
RM002 项目2 1

标签: sqlvbams-access

解决方案


使用联合查询并对输出求和:

Select
    ID,
    Sum(TRIn) As TR_In,
    Sum(TROut) As TR_Out,
    Sum(Total) As Stock
From

(Select
    ID,
    Description,
    Qty As TRIn,
    0 As TROut,
    Qty As Total
From
    table1
Order By ID

Union All

Select
    ID,
    Description,
    0 As TRIn,
    Qty As TROut,
    -Qty As Total
From
    table2)

Group By
    ID

输出:

在此处输入图像描述


推荐阅读