Access SQL查询-占总计算的百分比

Access SQL查询-占总计算的百分比,sql,ms-access,aggregation,percentage,iif,Sql,Ms Access,Aggregation,Percentage,Iif,在Access SQL中,我正在尝试完成一项看似简单的任务,以达到占总数的百分比。有3家商品商店(西尔斯、凯马特和Mktpl),在任何给定的一周内,我希望根据销售余额计算它们各自占总销售额的百分比(所有商品都可以通过一个表获得-tbl_BUChannelReporting) 例如,第5周的虚拟数字-西尔斯7000、凯马特2500、mktpl 2000 将返回以下比率:西尔斯61%、凯马特22%、mktpl 17% 我最初试图创建一个子查询,但没有结果,所以我基本上是尝试将第5周某个商品店的销售额

在Access SQL中,我正在尝试完成一项看似简单的任务,以达到占总数的百分比。有3家商品商店(西尔斯、凯马特和Mktpl),在任何给定的一周内,我希望根据销售余额计算它们各自占总销售额的百分比(所有商品都可以通过一个表获得-tbl_BUChannelReporting)

例如,第5周的虚拟数字-西尔斯7000、凯马特2500、mktpl 2000 将返回以下比率:西尔斯61%、凯马特22%、mktpl 17%

我最初试图创建一个子查询,但没有结果,所以我基本上是尝试将第5周某个商品店的销售额除以第5周所有3个商品店销售额的总和。以下是我的查询,它给出了“表达式中不能有聚合函数”错误:

提前感谢大家抽出时间。这是我在这里的第一个帖子,我不认为自己只是一个新手,渴望从最好的中学到东西,看看这是怎么回事。

保重


-D

考虑使用两个派生表或已保存的聚合查询:一个根据Item_Store分组,另一个不包括Item_Store,以合计门店的总收入。所有其他分组(FY、FW、Rept_Chnl、BU_NM、Order_Store)保留在两者中,并用于加入两者。然后在外部查询中,计算百分比比率

SELECT i.*, CDbl(i.Store_Revenue / a.Store_Revenue) As Ratios
FROM
  (SELECT t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store, t.Item_Store, 
          SUM(t.Revenue) As Store_Revenue
   FROM tbl_BUChannelReporting t
   WHERE t.FY = '2017' AND t.FW = 5 
   GROUP BY t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store, t.Item_Store) As i
INNER JOIN 
  (SELECT t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store 
          SUM(t.Revenue) As Store_Revenue
   FROM tbl_BUChannelReporting t
   WHERE t.FY = '2017' AND t.FW = 5 
   GROUP BY t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store) As a
ON i.FY = a.FY AND i.FW = a.FW AND i.Rept_Chnl = a.Rept_Chnl 
AND i.BU_NM = a.BU_NM AND i.Order_Store = a.Order_Store
或者将上述每个
选择
语句保存为其自己的查询,并引用以下两个语句:

SELECT i.*, (i.Store_Revenue / a.Store_Revenue) As Ratios
FROM
  Indiv_Item_StoreAggQ As i
INNER JOIN 
  All_Item_StoreAggQ  As a
ON i.FY = a.FY AND i.FW = a.FW AND i.Rept_Chnl = a.Rept_Chnl 
AND i.BU_NM = a.BU_NM AND i.Order_Store = a.Order_Store

考虑使用两个派生表或已保存的聚合查询:一个在Item_Store上分组,另一个不包括Item_Store,以便合计商店的总收入。所有其他分组(FY、FW、Rept_Chnl、BU_NM、Order_Store)保留在两者中,并用于加入两者。然后在外部查询中,计算百分比比率

SELECT i.*, CDbl(i.Store_Revenue / a.Store_Revenue) As Ratios
FROM
  (SELECT t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store, t.Item_Store, 
          SUM(t.Revenue) As Store_Revenue
   FROM tbl_BUChannelReporting t
   WHERE t.FY = '2017' AND t.FW = 5 
   GROUP BY t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store, t.Item_Store) As i
INNER JOIN 
  (SELECT t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store 
          SUM(t.Revenue) As Store_Revenue
   FROM tbl_BUChannelReporting t
   WHERE t.FY = '2017' AND t.FW = 5 
   GROUP BY t.FY, t.FW, t.Rept_Chnl, t.BU_NM, t.Order_Store) As a
ON i.FY = a.FY AND i.FW = a.FW AND i.Rept_Chnl = a.Rept_Chnl 
AND i.BU_NM = a.BU_NM AND i.Order_Store = a.Order_Store
或者将上述每个
选择
语句保存为其自己的查询,并引用以下两个语句:

SELECT i.*, (i.Store_Revenue / a.Store_Revenue) As Ratios
FROM
  Indiv_Item_StoreAggQ As i
INNER JOIN 
  All_Item_StoreAggQ  As a
ON i.FY = a.FY AND i.FW = a.FW AND i.Rept_Chnl = a.Rept_Chnl 
AND i.BU_NM = a.BU_NM AND i.Order_Store = a.Order_Store

非常感谢您对冻糕的澄清,感谢您的快速回复!非常感谢您对冻糕的澄清,感谢您的快速回复!