使用百分比数据汇总查询

时间:2012-08-29 09:00:30

标签: sql ms-access-2010 aggregation

我有一个查询来计算许多公司及其资产的石油生产效率。目前的查询是资产水平,我需要重新编写它以汇总到公司级别。

以下是代码:

SELECT qb1.CompanyName, qb1.AssetName, qb1.Year,
       (((qb1.DefaultOil*1000000)/qb2.MPPOil)*100) AS PEOIL
FROM PE_Field_OIL_GAS AS qb1 
INNER JOIN PE_Field_MPPOilRevised AS qb2 
ON qb1.Assetname=qb2.AssetName;

它基于计算:

((OIL×1000000)÷MPP原油修订)×100

其中MMPOil是另一个字段中的计算列。

汇总计算的工作原理如下:

(((assetA OIL×1000000)+(assetA OIL×1000000)) ÷(资产A MPP石油修订+资产B MPP石油修订)) ×100

请注意,此查询会输出百分比,因此它不仅仅是汇总所有资产级别数据的情况!任何帮助将不胜感激:))

1 个答案:

答案 0 :(得分:0)

您可以对双方进行求和,然后计算百分比,按公司和年份进行分组。如果您不需要年份,请从选择列表和分组列表中删除它。

SELECT qb1.CompanyName, qb1.Year,
       (((sum(qb1.DefaultOil)*1000000)/sum(qb2.MPPOil))*100) AS PEOIL
FROM PE_Field_OIL_GAS AS qb1 
INNER JOIN PE_Field_MPPOilRevised AS qb2 
ON qb1.Assetname=qb2.AssetName
GROUP BY qb1.CompanyName, qb1.Year;