INSERT..SELECT в MySQL - PullRequest
       3

INSERT..SELECT в MySQL

0 голосов
/ 06 августа 2010
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) строка ..

Короче говоря, я хочу попробовать скопировать весь текущий профиль сотрудника из tblprofile всего за одно выполнение?Может ли кто-нибудь помочь мне сделать это так ...

1 Ответ

1 голос
/ 06 августа 2010

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

Измените ваше предложение WHERE на

ОТ tblprofile t1 WHERE t1.flddate = (ВЫБЕРИТЕ МАКС. (Flddate) ИЗ tblprofile p WHERE p.fldemployeeno = t1.fldemployeeno) И t1.fldemployeeno IN ( 'EMP0001', 'EMP0002', 'EMP0003', 'EMP0004', 'EMP0005');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...