2013-07-15 87 views
0

我在Access 2007中有一组表格,我需要显示收到的物品总数。我们使用作业编号作为公共参考(如ID)来对作业订购商品。计算在多件货物上收到物品时收到的物品总数

每个工作都有多个项目需要。大部分物品都有我们收到的多件货物。每批货物都有唯一的收货单编号,因此需要单独输入并汇总。

我有:

  • tblJobItems:jobnumber可以,项目,QtyNeeded
  • tblReceived:jobnumber可以,项目,QtyRecvd,RTNumber(RT =接收机票)
  • tblJobs:jobnumber可以, JobQty(还有更多,但与此问题无关)

(JobQty并不总是与物品的QtyNeeded相同。这项工作就像一台计算机的某种模型,工作数量是该模型的数量。项目有时是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; 

这说明我在ListBox中的项目排序,有多少时,jobnumber可以存储为([Tempvars]![JobNum]),并列表框只显示匹配JubNumber的记录。 (tempvar是全球性的,所以它可以用于查询,如果有帮助的人)

我不反对让这个通过两个或三个查询来得到答案。

+0

我在查询中使用IIf函数和SUM一起找到了解决方案。作为奖励,它在每行没有值的行中放置一个0,因此它看起来不像缺少答案。 – RunningWithScissors

+0

我只是不知道我可以在同一个查询中对一个计算进行计算......我虽然必须运行一个查询,然后再运行另一个查询。 – RunningWithScissors

+0

感谢HansUp,仍然在学习论坛......从未使用过这么多年,只是发现它们可能会有多大用处。 – RunningWithScissors

回答

1

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

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

此总结了量,也创造了与总计查询的新列。