2014-03-26 182 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;