首页 > 解决方案 > 运行求和查询

问题描述

我是 Access 的新手,我正在尝试开发自己的库存管理数据库。

我正在尝试进行查询,以显示截至特定日期的手头库存总量。这是我的桌子的样子:

在此处输入图像描述

它按照 ITEM_ID 然后 TRANDATE 升序排序。我想在 NET 字段旁边添加一个计算字段,该字段将显示特定日期后特定 ITEM_ID 的运行总计。NET 字段中的负数代表销售,而正数代表购买。我尝试使用 DSUM 函数,因为它被广泛推荐用于创建运行总和字段。我的表情是这样的 DSum([NET],"InvtyTransT", "[ITEM_ID]=" & [ITEM_ID] And "[TRANDATE]<=#" & [TRANDATE] & "#")。但它只显示每条记录中 NET 字段的总数(6827),如下所示:

在此处输入图像描述

我需要的是这样的:

在此处输入图像描述

(我在excel中使用了一个IF函数来计算这个)

请帮忙。我想我的表达中可能漏掉了什么。我已经尝试过多次修改它,它总是会在每条记录中给我同样的错误答案。

提前致谢。

标签: sqlms-access

解决方案


尝试相关子查询。

SELECT t.*, (SELECT SUM(t2.NET)
        from InvtyTransT as t2
        WHERE (t2.TRANDATE <= t.TRANDATE AND t2.ITEM_ID = t.ITEM_ID)
        ) AS rSUM
FROM InvtyTransT AS t;

在此处输入图像描述


推荐阅读