2010-08-06 63 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