2010-08-27 12 views
3

Je veux calculer une ligne à la table "compteur". J'essaie de faire ma table comme:comment insérer une formule dans mysql?

name   black  yellow  white  qty_job  total 
david   1  0   0   2    ? 
andrew   0  1   1   4    ? 

la formule de calcul est:

total = (nblack * 1) + (nyellow * 1) + (nwhite * 0.4)/qty_job 
total = (1 * 1) + (0 * 1) + (0 * 0.4)/2 = 0.5 

comment insérer cette formule au code MySQL? surtout à la méthode SELECT.

Répondre

5

Vous ne devriez pas/ne pouvez pas faire une rangée avec une certaine formule dedans. Vous devez utiliser cette requête pour récupérer le total:

SELECT 
    name, 
    black, 
    yellow, 
    white, 
    qty_job 
    (SUM(black) + SUM(yellow) + SUM(white)*0.4)/qty_job AS total 
FROM counter 
GROUP BY name; 
1

Une autre alternative est de créer une vue:

CREATE VIEW test AS 
SELECT id, (black * 1) + (yellow * 1) + (white * 0.4)/qty_job as total FROM counter; 

Le reste devrait être facile, vous pourriez faire quelque chose comme ceci:

select 
counter.id, 
black, 
yellow, 
white, 
test.total 
from 
counter, 
test 
where 
    counter.id = test.id 
1
DECLARE @Number As int, @Number2 As int 
SET @Number = 5 
WHILE @Number >= 1 
BEGIN 
PRINT @Number 
SET @Number = @Number - 1 

PRINT @Number2 
SET @Number2 = @Number * (@Number2 - 1) 

PRINT 'The Factorial of' 
PRINT @Number 
PRINT 'is' 
PRINT @Number2 

END 
GO