2014-04-01 39 views
2

我有一個表中有以下數據(當然有很多行)。sql插入語句來設置行的比例

metric_id(int) | employee_id (string) | quota (double) 
1    | abcd     | 100 
1    | wxyz     | 120 

我想要做的是一個SQLINSERT這需要所有的值與特定metric_id

select * from mytable where metric_id=1; 

然後用結果來創建具有不同metric_id新的項目,將有設定在特定比例的配額值。 (即:metric_id = 2配額爲metric_id = 50%1)

所以插入後,我的茶几看起來像

metric_id(int) | employee_id (string) | quota (double) 
1    | abcd     | 100 
1    | wxyz     | 120 
2    | abcd     | 50 
2    | wxyz     | 60 

可這在一個SQL語句來完成?如果可能的話,我希望使用準備好的聲明來防止注入。

回答

2

試試這個。它應該是你需要的。

insert into some_table 
(metric_id, employee_id, quota) 
select 
2, employee_id, quota * 0.5 
from 
some_table 
where 
metric_id = 1 
0
更多

替代方式(沒有where子句需要):

INSERT INTO TableName 
(metric_id,employee_id,quota) 
SELECT metric_id+1,employee_id,quota/2 
FROM TableName