0

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

这是代码:

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)) ÷ (assetA MPP Oil 修改 + AssetB MPP Oil 修改)) × 100

请注意,此查询输出一个百分比,因此它不仅仅是对所有资产级别数据求和的情况!任何帮助将非常感激 :)

4

1 回答 1

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;
于 2012-08-29T09:07:48.520 回答