如何从数量和平均价格的总和中得到多列的总和?
How to get total of multiple columns from sum of quantity and average of price?
我正在使用 Ms Access 数据库,有一个名为 "Data Table" 的 table,这个 table 包含的数据是一家企业的已售库存,列是 Item,数量、价格、总计和我使用以下聚合函数对 table 的 select 结果进行分组:
Quantity: =Sum([Quantity]) Result = 23
Price: =Avg([Price]) Result = 4.5
Total: =[Quantity] * [Price] Result = 103.5
问题是结果与我进行以下计算时的结果不一样:
Quantity: =Sum([Quantity]) Result = 23
Price: GROUP BY [Price] Result = Different Columns
Total: =[Quantity] * [Price] Result = Different Columns
Grand Total: =Sum([Total]) Result = 110
而这个 110
的结果正是我希望这个结果通过第一个概念得到的准确值。
你的 Total Formula
从数学的角度来看是错误的。或者你的 Price Formula
:
考虑购买 1 item of type ABC for 0€ each
并购买 2 items of type XYZ for 1€ each
。上面的总和应该是2€
。但是,如果您像这样计算平均价格,您将得到 (0€ + 1€) / 2 = 0.5€
的价格(请注意,除以 2 是 不同 商品的数量)。如果将其乘以您购买的商品数量 (3
),您最终会得到 1.5€ != 2€
的价格
那是因为您的平均值只是对忽略数量的每件商品的价格求平均值。
你必须弄清楚 average price
应该代表什么。它没有任何实际意义,可能本身应该由总价得出。如果不隐式计算总价值,我想不出一种正确的方法来生成平均定价。它应该只是 SUM([Quanity] * [Price]) / SUM([Quanity])
正好是 Total / Quanity
尝试在查询中使用此 SQL 语句:
SELECT [Data Table].Item, Sum([Data Table].Quantity) AS [Sum Quantity], Avg([Data Table].Price) AS [AVG Price], Sum([Quantity]*[Price]) AS Total
FROM [Data Table]
GROUP BY [Data Table].Item;
注意:必须给列不同的名称以避免错误。(例如,数量变成总数量)
我正在使用 Ms Access 数据库,有一个名为 "Data Table" 的 table,这个 table 包含的数据是一家企业的已售库存,列是 Item,数量、价格、总计和我使用以下聚合函数对 table 的 select 结果进行分组:
Quantity: =Sum([Quantity]) Result = 23
Price: =Avg([Price]) Result = 4.5
Total: =[Quantity] * [Price] Result = 103.5
问题是结果与我进行以下计算时的结果不一样:
Quantity: =Sum([Quantity]) Result = 23
Price: GROUP BY [Price] Result = Different Columns
Total: =[Quantity] * [Price] Result = Different Columns
Grand Total: =Sum([Total]) Result = 110
而这个 110
的结果正是我希望这个结果通过第一个概念得到的准确值。
你的 Total Formula
从数学的角度来看是错误的。或者你的 Price Formula
:
考虑购买 1 item of type ABC for 0€ each
并购买 2 items of type XYZ for 1€ each
。上面的总和应该是2€
。但是,如果您像这样计算平均价格,您将得到 (0€ + 1€) / 2 = 0.5€
的价格(请注意,除以 2 是 不同 商品的数量)。如果将其乘以您购买的商品数量 (3
),您最终会得到 1.5€ != 2€
那是因为您的平均值只是对忽略数量的每件商品的价格求平均值。
你必须弄清楚 average price
应该代表什么。它没有任何实际意义,可能本身应该由总价得出。如果不隐式计算总价值,我想不出一种正确的方法来生成平均定价。它应该只是 SUM([Quanity] * [Price]) / SUM([Quanity])
正好是 Total / Quanity
尝试在查询中使用此 SQL 语句:
SELECT [Data Table].Item, Sum([Data Table].Quantity) AS [Sum Quantity], Avg([Data Table].Price) AS [AVG Price], Sum([Quantity]*[Price]) AS Total
FROM [Data Table]
GROUP BY [Data Table].Item;
注意:必须给列不同的名称以避免错误。(例如,数量变成总数量)