0

create table mainTable as select curr_Table.empID as empID, (currTable.ToTalDays-oldTable.ToTalDays) as DiffDays from currTable left outer join oldTable on currTable.empID = oldTable.empID

这是我用来查找员工工作天数的查询。

当有“新加入者”时,问题就出现了。“oldTable.ToTalDays”将没有任何值,因为在 oldTable 中找不到“New Joinee”的记录。因此,对于此记录,DiffDays (Integer-null) 结果为零,而不是当前的总天数。

有什么办法可以解决这个问题?

4

2 回答 2

1

不太确定这个,但我不认为mysql允许

CREATE TABLE AS SELECT ...

类似的东西。仔细检查那个手册。在postgres上见过这样的查询,但在mysql上不记得了……

编辑:

也进行了仔细检查,不得不承认 CREATE TABLE AS SELECT ... 确实有效。没关系,去喝杯咖啡...

于 2009-10-13T06:59:27.007 回答
0
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
于 2009-10-13T07:23:35.150 回答