访问查询在组内汇总

时间:2017-01-18 17:39:52

标签: sql ms-access

以下是我需要的查询的示例输出。基本上,我只想要公司分组时所有部门的最大购买金额。

对于摘要,1个部门允许购买总共50个项目。 1个部门可以有多人做购买;每个公司都可以有多个部门:

Department A - Max Purchase: 50 Items
  Purchaser A - 5 Items
  Purchaser B - 3 Items
Department B - Max Purchase: 60 Items
  Purchaser C - 3 Items
  Purchaser D - 5 Items
  Purchaser E - 5 Items

Company A
  Total Max Purchased Allowed: Department A + Department B (110 Items)
  Total Item Purchased: Purchaser A to Purchaser E (21 Items)

当我进行查询时,它总结了Max Purchased Allowed并将其分组给购买者,因此最终得到250件而不是110件。

到目前为止我的查询:

SELECT 
  Trim([workcntr].[Work-Center-ID]) AS WCID, 
  First(Trim([workcntr].[Work-Center-Name])) AS WCDesc, 
  IIf(Sum([purchaser].[PLN-QTY])-Sum(Int([purchaser].[PLN-QTY]))>0,
    Int(Sum([purchaser].[PLN-QTY]))+1,
    Sum([purchaser].[PLN-QTY])) AS PlnQty, 
  Sum(DeptLoadVal.MaxPurc) AS DeptMaxPurch
FROM (workcntr 
  LEFT JOIN workdetl 
    ON workcntr.[Work-Center-ID] = workdetl.[Work-Center-ID]) 
  LEFT JOIN ((DeptLoadVal 
    LEFT JOIN gateschd 
      ON DeptLoadVal.[G-Dept#] = deptschd.[Dept ID]) 
    LEFT JOIN purchaser 
      ON gateschd.[R-TRACKING-NBR] = purchaser.[R-TRACKING-NBR]) 
  ON workdetl.[Work-Center-Gate] = DeptLoadVal.[G-Dept#]
WHERE (((purchaser.[R-purchaser-STATUS]) Like "Y" 
  Or (purchaser.[R-purchaser-STATUS]) Like "M" 
  Or (purchaser.[R-purchaser-STATUS]) Is Null))
GROUP BY Trim([workcntr].[Work-Center-ID])
HAVING (((Trim([workcntr].[Work-Center-ID])) Not Like "431") 
  AND (Not (
    IIf(Sum([purchaser].[PLN-QTY])-Sum(Int([purchaser].[PLN-QTY]))>0,
      Int(Sum([purchaser].[PLN-QTY]))+1,
      Sum([purchaser].[PLN-QTY]))) 
  Is Null));

如何计算公司的总和?

0 个答案:

没有答案