SQL求助
afoon 2003-12-12 02:20:08 现在有四个表:名单(UID,姓名,单位),请假人员(UID,日期),迟到人员(UID,日期),缺勤人员(UID,日期)
要将后三个表中有记录的人员按月份理出,每一条记录为:姓名,单位,请假天数,迟到天数,缺勤天数。我使用:
select 名单.姓名,名单.单位,count(请假人员.UID)from 请假人员,名单 where 请假人员.UID = 名单.UID and datepart(month,请假人员.日期) = '12' group by 名单.姓名,名单.单位
union
select 名单.姓名,名单.单位,count(迟到人员.UID)from 迟到人员,名单 where 迟到人员.UID = 名单.UID and datepart(month,迟到人员.日期) = '12' group by 名单.姓名,名单.单位
union
select 名单.姓名,名单.单位,count(缺勤人员.UID)from 缺勤人员,名单 where 缺勤人员.UID = 名单.UID and datepart(month,缺勤人员.日期) = '12' group by 名单.姓名,名单.单位
结果不正确,因为每个人不会在后三个表中都有数据,当count()为0时不加入到记录中,每一条记录都不完整,怎样保留count为0的记录?