2014-03-26 139 views
1

我正在尝试执行此任务。编写一个查询,为2014年的每位销售人员添加2015年销售人员表。他们的姓名,地区和薪水应与2014年相同。销售额应为0美元。他们的奖金水平应该是“低”。查询里面的另一个查询

回答

1

您可以使用INSERT ... SELECT查询来做到这一点。这个想法是在表中插入一个或多个表的SELECT结果。

不知道表格的确切模式,这里是一个粗略的想法,你可以如何实现它。

INSERT INTO Salesmen 
    (year, name, region, salary, sales, bonus) 
SELECT 
    2015, name, region, salary, 0 , 'Low' 
FROM 
    Salesmen WHERE Year=2014 

这将数据插入到Salesmen对于列出的特定列,使用在SELECT列出的值。某些值是字段名称,因此将根据FROM Salesmen WHERE Year=2014的结果使用它们。硬编码值将按原样插入每行的相应列中。

+0

将在2015年添加到每个名称,而不从2014年起删除数据? – user3462117

+1

这只是插入新的行。它对现有的行不起作用。您可能会首先在虚拟数据或现有数据的备份上进行测试。 – mellamokb

1

试试这个:

INSERT INTO salesman (firstName, lastName, region, year, salary, sales, bonusLevel) 
SELECT firstName, lastName, region, 2015, salary, 0, 'low' 
FROM salesman so 
WHERE so.year = 2014;