2010-09-03 69 views
1

我有一個表有兩個列:SQL查詢構建公式

Name Values 
---------------- 

Target 20 

v1  10 

v2  20 

v3  10 

Total 30 

percent ? 

我想計算與單個列值的百分比,以獲得公式

- >目標/總* 100 。

即對前:總分=那樣的SUM(值)......

通過在SQL查詢中使用列兩行,怎麼辦計算單柱,DIFF行值由實施引入一個公式。

我不想計算總數。我想計算百分比:

公式:目標/總數* 100。那給了我百分比行的價值?

怎麼樣?來查詢它?

+1

爲V1 + V2 + V3(40)意味着等於總(30)? Total是一個單獨的行嗎?你想把它全部放在一列中? – gbn 2010-09-03 17:00:01

回答

1

如果你想在SQL中......

;WITH 
cTarget AS (SELECT Values AS Target FROM MyTable WHERE name = 'Target'), 
cTotals AS (SELECT SUM(Values) AS Total FROM MyTable WHERE name <> 'Target') 
SELECT * FROM MyTable 
UNION ALL 
SELECT 'Total', Total FROM cTotals 
UNION ALL 
SELECT 
    'Percentage', 1.0 * Target/Total * 100 
FROM 
    cTarget 
    CROSS JOIN 
    cTotals 
1

你想要一個額外的記錄在您的查詢的輸出顯示?這似乎是你想使它看起來&工作像一個Excel電子表格,但不管怎麼說,這裏是你如何去這樣做:

SELECT Name, Values FROM table 
UNION (Select function(inputs) AS Name, function(inputs) AS Values FROM table)