2010-08-06 94 views
0
INSERT INTO tblprofile (fldDate,fldemployeeno,fldLName,fldFName,fldMI,fldEmployeeName, 
         fldShiftCode,fldProjectGroup,fldTask,fldSuperior,fldPosition) 
SELECT now(),tblprofile.fldemployeeno,tblprofile.fldlname,tblprofile.fldfname,tblprofile.fldmi,tblprofile.fldemployeename, 
     tblprofile.fldshiftcode,tblprofile.fldprojectgroup,tblprofile.fldtask,tblprofile.fldsuperior,tblprofile.fldposition 
    FROM tblprofile 
WHERE tblprofile.flddate = (SELECT MAX(flddate) FROM tblprofile p 
           WHERE p.fldemployeeno IN ('EMP0001','EMP0002','EMP0003','EMP0004','EMP0005')) 
    AND tblprofile.fldemployeeno IN 
     ('EMP0001','EMP0002','EMP0003','EMP0004','EMP0005'); 

我希望所有的員工的所有當前配置文件複製在列表中( 'EMP0001', 'EMP0002', 'EMP0003', 'EMP0004', 'EMP0005'),似乎在我的查詢只插入一(1)行..INSERT..SELECT在MySQL

總之,我想嘗試的員工的所有電流分佈從tblprofile複製只是一個執行?誰能幫我做的是這樣..

+0

'flddate'比較 - 它與這些員工關聯的最高值匹配,但只有其中一個具有該值... – 2010-08-06 04:56:54

+1

tblprofile.flddate =(SELECT MAX(flddate)...它可能僅返回其中五人當中的一個日期...... – KoolKabin 2010-08-06 04:57:37

+0

它必須做的工作,你確定選擇返回多行嗎? – 2010-08-06 04:58:16

回答

1

從您的意見看來,用戶可以有多個配置文件,並且希望最新的,併爲新配置文件的當前日期。

更改您的WHERE子句此

FROM tblprofile T1 WHERE t1.flddate =(SELECT MAX(flddate)FROM tblprofile p其中p.fldemployeeno = t1.fldemployeeno)和t1.fldemployeeno IN ('EMP0001 」, 'EMP0002', 'EMP0003', 'EMP0004', 'EMP0005');

+0

謝謝你..它的工作.. :) – Bryan 2010-08-06 05:20:43