2010-09-03 8 views
1

j'ai une table avec deux colonnes:requête sql construction de formule

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

Target 20 

v1  10 

v2  20 

v3  10 

Total 30 

percent ? 

je veux calculer le pourcentage de la valeur de la colonne unique pour obtenir la formule

-> Cible/Total * 100 .

-à-dire par ex: total = SUM (valeurs) de cette façon ......

à l'aide de deux rangées dans la colonne dans la requête SQL, comment faire le calcul dans une seule colonne de valeurs de ligne de diff par implem enting une formule en elle.

Je ne veux pas calculer le total. Je veux calculer le pourcentage:

formule: Cible/Total * 100. cela me donne la valeur en pourcentage ligne?

comment? interroger?

+1

+ v2 est-v1 + v3 (40) signifie à l'égalité totale (30)? Total est-il une ligne séparée? Vous voulez tout dans une colonne? – gbn

Répondre

1

Si vous voulez ceci dans 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

Vous voulez un enregistrement supplémentaire pour afficher dans la sortie de requête? Cela semble que vous essayez de le faire paraître & travail comme une feuille de calcul Excel, mais de toute façon, voici comment vous allez à le faire:

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