oracle数据库按时间查询时,在某一时间段中数据库中没有数据,如何让他显示为零

数据表

img

我想拿到日期为1月份的的人员的 次 数
select name,count(name) from ceshi where
shijian>=to_date('2021-01-01','yyyy-MM-dd') and shijian<=to_date('2021-01-31','yyyy-MM-dd') group by name

img

**问题

**但是李四没有在1月份里面,如何在查询1月份的时候显示李四,并实现结果为0

试试
select allemp.name,nvl(count(ceshi.name),0) from ceshi,ceshi as allemp where allemp.name = ceshi.name(+) and
ceshi.shijian>=to_date('2021-01-01','yyyy-MM-dd') and ceshi.shijian<=to_date('2021-01-31','yyyy-MM-dd') group by allemp.name

1.创建一个视图或临时表
create view C as
select name,count(name) as 人员次数 from ceshi where
shijian>=to_date('2021-01-01','yyyy-MM-dd') and shijian<=to_date('2021-01-31','yyyy-MM-dd') group by name
2.select name,人员次数 from c
union
select name,0 from ceshi where name not in (select name from c) group by name