【发布时间】:2013-07-15 15:34:57
【问题描述】:
我在 Access 2007 中有一组表格,我需要这些表格来显示收到的项目总数。我们使用作业编号作为通用参考(如 ID)根据作业订购物品。
每个作业都需要多个项目。大多数物品都有我们收到的多批货物。每批货物都有一个唯一的收货单号,因此需要单独输入并合计。
我有:
- tblJobItems :JobNumber、Item、QtyNeeded
- tblReceived :JobNumber、Item、QtyRecvd、RTNumber(RT = 接收工单)
- tblJobs : JobNumber, JobQty(还有更多,但与此问题无关)
(JobQty 并不总是和item 的QtyNeeded 一样。job 就像是运行某种型号的电脑,job qty 是那个型号的多少。item 有时是1:1,例如机箱或电源供应,但可以是 2:1 或 3:1,例如拥有多个硬盘。)
我有一个查询可以很好地显示已下订单的商品数量,但我们想要扩展它(或与其他查询结合)以显示同一行中每个作业编号收到的商品总数。最终我会用这个数字来改变状态和其他功能。
SELECT tblJobItems.JobNumber, tblJobItems.Item, tblJobItems.QTYNeeded, tblJobItems.PartStatus, First(tblJobs.BDT) AS FirstOfBDT, First(DateAdd("ww",-2,[BDT])) AS DueBy
FROM tblJobItems INNER JOIN tblJobs ON tblJobItems.JobNumber = tblJobs.JobNumber
GROUP BY tblJobItems.JobNumber, tblJobItems.Item, tblJobItems.QTYNeeded, tblJobItems.PartStatus;
这会在列表框中显示订购的项目和数量,JobNumber 存储为([Tempvars]![JobNum]),并且列表框仅显示与 JubNumber 匹配的记录。 (tempvar 是全局变量,因此如果对任何人有帮助,可以在查询中使用它)
我不反对让这个问题经过两三个查询才能得到答案。
【问题讨论】:
-
我确实在查询中使用 IIf 函数和 SUM 找到了解决方案。作为奖励,它会在之前没有值的每一行中放置一个 0,因此看起来不会缺少答案。
-
我只是不知道我可以对同一个查询中的计算进行计算......我虽然必须运行一个查询然后另一个才能这样做。
-
感谢 HansUp,仍在学习论坛...这么多年从未使用过它们,只是发现它们有多大用处。
标签: sql sum ms-access-2007