-3

我有一个 MYSQL 表,我想在其中执行以下操作。

ID Com Com_Sub 年份参数值
6 A A1 2010 年利润 33766.18
20 A A1 2010 年收入 2793617.12
30 A A1 2011 年利润 84310.73
54 A A1 2009 年利润 129129.5284
60 A A1 2011 年收入 2049157.294
70 B B1 2010 年利润 3753765490
76 B B1 2010 收入 217326.7561

现在我需要操纵它并使它像这样

ID Com Com_Sub 年份 参数值 新值
6 A A1 2010 年利润 33766.18 0.0123
20 A A1 2010 年收入 2793617.12
30 A A1 2011 年利润 84310.73 0.0252
54 A A1 2009 年利润 129129.5284    
60 A A1 2011 年收入 2049157.294
70 B B1 2010 年利润 3753765490 1.235
76 B B1 2010 收入 217326.7561

这意味着每当我在行中有共同的 Year 和 Common Com_sub 值时,我都需要添加这两个值的除法。

4

2 回答 2

0

假设表被调用nanuet,这应该这样做:

alter table nanuet add newvalue decimal(6,2);

update nanuet n1 join nanuet n2 on n1.c1=n2.c1
    set n1.newvalue = n1.value/n2.value
    where n1.id<n2.id;

如果有超过 2 行具有相同值c1的结果将很难预测。

于 2013-07-07T08:25:52.210 回答
0
    UPDATE tbl t1
       SET t1.new_col_name = t1.Value / t2.Value
INNER JOIN tbl t2 ON t2.Com_Sub = t1.Com_Sub
                 AND t2.Year = t1.Year 
                 AND t2.Parameter = 'Revenues'
     WHERE t1.Revenues = 'Profit'
于 2013-07-07T08:34:10.037 回答