2012-08-29 24 views
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油訂正+ assetB MPP油修訂版)) ×100

請注意,這個查詢輸出百分比所以它不只是一個所有資產級別的數據相加的情況下!任何幫助將不勝感激:)

回答

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; 
+0

非常感謝! – Magda

+0

@Magda @Magda不客氣:-) –

+0

對不起,我有另一個問題,對於相同的計算結構,但具有不同的變量,我得到一個'溢出'的錯誤,我假設它是因爲值太長..你有什麼想法我可以將數據四捨五入到最接近的整數? (我可以在我的問題中將這個函數添加到資產計算中) – Magda