Проблема в создании таблицы - PullRequest
0 голосов
/ 13 октября 2009

создать таблицу mainTable как select curr_Table.empID как empID, (currTable.ToTalDays-oldTable.ToTalDays) как DiffDays из currTable осталось внешнее соединение oldTable on currTable.empID = oldTable.empID

Это запрос, который я использую, чтобы найти дни, отработанные сотрудником.

Проблема возникает, когда появляется «Новый Джоини». «oldTable.ToTalDays» не будет иметь никакого значения, так как не найдена запись для «New Joinee» в oldTable. Таким образом, для этой записи результаты DiffDays (Integer-null) равны нулю вместо текущих общих дней.

Есть ли способ решить эту проблему?

Ответы [ 2 ]

1 голос
/ 13 октября 2009

Не совсем уверен в этом, но я не думаю, что MySQL разрешает

CREATE TABLE AS SELECT ...

такие вещи. Дважды проверьте руководство по этому . Видел такие запросы на postgres, но не помню таких на mysql ...

РЕДАКТИРОВАТЬ:

Выполнена двойная проверка, и нужно признать, что CREATE TABLE AS SELECT ... работает на деле Неважно, выпью кофе ...

0 голосов
/ 13 октября 2009
create table mainTable as
select curr_Table.empID as empID,
       (currTable.ToTalDays - ifnull(oldTable.ToTalDays, 0)) as DiffDays 
  from currTable
         left outer join
       oldTable  on currTable.empID = oldTable.empID
...