2014-03-12 74 views
0
CREATE TEMPORARY TABLE IF NOT EXISTS ES3( 
    Select T148001,T148002,T148003,T148006 
    From T148 where T148008 = Monthy and T148009 = Yeary and T148007 = ID 
); 

update SalaryTable , ES3 src 
Set Present = T148003, WorkingDay = T148002, Overtime = T148006  
Where Empid = T148001 ; 

回答

0

由於樣本代碼中使用臨時表來更新表以下爲:

CREATE TEMPORARY TABLE Groups (Id INTEGER AUTO_INCREMENT PRIMARY KEY, 
NAME VARCHAR(31), GroupId VARCHAR(31), ValWithinGroup INTEGER); 

INSERT INTO Groups VALUES (NULL, "Davy", "Boy", 2); 
INSERT INTO Groups VALUES (NULL, "Mary", "Girl", 2); 
INSERT INTO Groups VALUES (NULL, "Bill", "Boy", 5); 
INSERT INTO Groups VALUES (NULL, "Jill", "Girl", -3); 
INSERT INTO Groups VALUES (NULL, "Fred", "Boy", 3); 

#查找最低值爲每組

CREATE TEMPORARY TABLE GroupSum AS SELECT GroupId, MIN(ValWithinGroup) 
AS baseVal FROM Groups GROUP BY GroupId; 

#創建一個索引,MySQL能有效地匹配

ALTER TABLE GroupSum ADD UNIQUE(的GroupId);

#最後,使基線調整

UPDATE Groups LEFT JOIN GroupSum USING (GroupId) 
SET ValWithinGroup=ValWithinGroup-baseVal; 
SELECT * FROM Groups;