with cte as
(
select to_date('01-JUN-2020','DD-MON-YYYY')+(level-1) DT
from dual
connect bY level<= 30
)
select *
from cte x
left outer join
(select date from time where emp in (1, 2)) a on x.dt = a.date
在这种情况下,我试图找到失踪的日子,这些人没有报告工作。。。适合一个人。我正确地找回了他们失踪的日子。但是当我加上两个人。。我没有为他们找回正确的错过的日子,因为我想我只是在约会的时候加入。
我想知道我如何能分区这个数据的人id和日期,以便能够得到准确的日子,每一个失踪。
请帮忙,谢谢。
1条答案
按热度按时间rn0zuynd1#
你通常会
cross join
日期列表与人员列表,然后使用not exists
要提取失踪人员/日期元组:请注意,这使用的是文字日期,而不是
to_date()
,在这里更合适。这将同时为所有人提供丢失的元组。如果只需要预定义的人员列表,则:
如果您还想查看“状态”日期,则使用
left join
而不是not exists
,如原始查询中所示: