【问题标题】:Calculate total number of items received when item is received on more than one shipment计算收到的物品总数超过一件货物时收到的物品总数
【发布时间】: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


【解决方案1】:

事实证明,我的查询 SQL 中需要的关键部分是:

Sum(tblReceived.ReceivedQTY) AS SumOfReceivedQTY, IIf(IsNull([SumofReceivedQTY]),0,[SumofReceivedQTY]) AS RECQTY

这会汇总数量并在查询中创建一个包含总计的新列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多