0

我正在尝试为公司的薪水制作报告,我想通过使用如下查询向公司的所有员工展示:

select tab1.name, tab1.job,tab1.salary, tab2.discount-days,
       (tab1.salary-((tab1.salary/30)*tab2.discount-days) as 'total' 
from   tab1, 
       tab2 
where  tab2 .date_discount between date_begin and date_end;

在这里它只显示在此期间享受折扣的员工,但我想显示公司的所有员工,如果有人享受了折扣,也显示这个总数。

请需要帮助来查询不仅显示有折扣的所有员工

4

1 回答 1

1

您需要使用左连接。

select tab1.name, tab1.job,tab1.salary, tab2.discount-days,
       (tab1.salary-((tab1.salary/30)*tab2.discount-days) as 'total' 
from   tab1, 
       tab2 left join tab2  as tab3 on tab2.primary_key = tab3.id.primary_key 
and tab3 .date_discount between date_begin and date_end;

如果你使用左连接,左侧表中存在的所有记录都会出现,右侧表中匹配的记录也会出现。

我认为它可能对你有用。

于 2013-09-26T06:32:22.413 回答