2010-08-06 5 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' - оно соответствует наибольшему значению, связанному с этими сотрудниками, но только одно из них имеет это значение ... –

+1

tblprofile.flddate = (SELECT MAX (flddate) ... он может возвращаться только одна из пяти из них ... – KoolKabin

+0

он должен выполнить эту работу, вы уверены, что выберите возврат более одной строки? –

ответ

1

Из ваших комментариев выясняется, что пользователь может иметь несколько профилей, и вы хотите получить последние данные и установить текущую дату для нового профиля.

Изменения ИНЕКЯ этой

ОТ tblprofile t1 WHERE t1.flddate = (SELECT MAX (flddate) FROM tblprofile р WHERE p.fldemployeeno = t1.fldemployeeno) И t1.fldemployeeno В ('EMP0001 », 'EMP0002', 'EMP0003', 'EMP0004', 'EMP0005');

+0

спасибо .. он работает .. :) – Bryan

Смежные вопросы