2010-08-27 3 views
3

Я хочу вычислить одну строку за столом «counter». я пытаюсь сделать мой стол, как:Как вставить некоторую формулу в mysql?

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

формула для расчета является:

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

как вставить эту формулу в тузд код? особенно при методе SELECT.

ответ

5

Вы не должны/не можете сделать строку с определенной формулой в ней. Вы должны использовать этот запрос для извлечения всего:

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

Другой альтернативой является создание вид:

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

Остальное должно быть легко, вы могли бы сделать что-то вроде этого:

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 
Смежные вопросы