我有一个与ms-access计算相关的问题。所以要清楚,我上传了 Excel 表,我在那里进行了计算。我对加权平均值感兴趣,基本上如何进行excel中的访问计算。
我在excel中的公式看起来像这样:=SUMIFS($I:$I;$G:$G;G2;$H:$H;H2;$B:$B;B2;$C:$C;C2)/SUMIFS($F:$F;$G:$G;G2;$H:$H;H2;$B:$B;B2;$C:$C;C2)
每个月,每个代码(产品)的每个代码(产品)的销售和销售量都是正确的。
我在excel中拥有相同的数据库,我获得了所有额外的计算字段,其收入,月份和年份值与excel相同。但是我必须知道如何在访问中重现我的excel公式。
图片上的每件产品加权包含上述公式。我需要找到一种方法将这种计算包含在访问中,其中数据是相同的。
Code Group Price per t Volume MONTH YEAR Revenue Weighted
13753 avangard 12 818,84 108,85 1 2008 1 395 330,73 13 826,51
13755 super 11 488,83 26,76 1 2008 307 441,09 15 726,96
14899 super 11 607,86 64,39 1 2008 747 430,11 15 591,86
13747 super 11 892,57 62,96 1 2008 748 756,21 16 199,30
13753 avangard 18 134,69 94,65 1 2008 1 716 448,41 13 826,51
应如何计算= SUMIFS(收入; CriteriaRange(1)=月;标准(1)=第2行(月); CriteriaRange(2)=年份;标准(2)=第2行(年); CriteriaRange(3) )=代码;标准(3)=行2(编号))/ SUMIFS(音量; CriteriaRange(1)=月;标准(1)=行2(月); CriteriaRange(2)=年份;标准(2)=行2(年); CriteriaRange(3)=代码;标准(3)=行2(编号))
如果我们将自己与计算加权表格样本分开,仅基于提供的数据,项目13753的加权价格=(1 395 330,73 + 1 716 448,41)/(108,85 + 94,65) = 15 291,30
@Darren Bartrup-Cook。找到了我需要的解决方案。非常感谢您的帮助。这是我用来镜像SUMIFS函数的最终SQL代码。
SELECT Data.Code,
Справочник_групп_продукции.Group,
Month([Dated]) AS LMonth,
Year([Dated]) AS LYear,
SUM([Price per t] * [Volume])/SUM([Volume]) AS Wght_Avg
FROM Справочник_групп_продукции INNER JOIN Data ON Справочник_групп_продукции.[Code] = Data.[Code]
GROUP BY Data.Code,
Month([Dated]),
Year([Dated]),
Справочник_групп_продукции.Group;
答案 0 :(得分:2)
将您的表格设置为示例表格(抱歉,无法查看图片)和
表名为MyTable
,您只需执行总和(收入/数量)并按代码,月份和年份分组。
SELECT Code
, Group
, lMonth
, lYear
, ROUND(SUM(Revenue)/SUM(Volume),2) AS Weighted_Avg
FROM MyTable
GROUP BY Code
, Group
, lMonth
, lYear
NB:我已将Month
和Year
字段的名称更新为lMonth
和lYear
以避免保留字冲突。
我可能会改变我的设计使用真实日期而不是月份和年份数字。
注意2:我还将Group
移动到另一个表格,使用Code
作为该表格中的主键主表中的外键。这将消除组名中的任何拼写错误
新查询将是:
SELECT MyTable.Code
, Group
, lMonth
, lYear
, ROUND(SUM(Revenue)/SUM(Volume),2) AS Weighted_Avg
FROM MyTable LEFT JOIN GroupTable ON MyTable.Code = GroupTable.Code
GROUP BY MyTable.Code
, Group
, lMonth
, lYear
修改:
查看已发布此更新SQL的SQL应该有效:
SELECT Format(Dated,"mmm-yyyy") AS Month_Year
, Group
, Data.Code
, [Price per t]*volume AS Revenue
, ROUND(SUM([Price per t]*[Volume])/SUM(Volume),2) AS Weighted_Avg
FROM Справочник_групп_продукции INNER JOIN Data ON Справочник_групп_продукции.Code = Data.Code
GROUP BY Format(Dated,"mmm-yyyy")
, Group
, Data.Code
, [Price per t]*volume