2010-09-03 78 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)