显示休假员工人数的sql查询

vmpqdwk3  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(374)

我使用的是oracle apex 20.1。在我的 Jmeter 板上,我想显示在当前sysdate休假的员工数量。我有一个leave\u details表,其中包含emp\u id列、leave\u start\u date列、leave\u end\u date列和leave\u status列。我尝试了以下sql查询:

select nvl(count(emp_id),0)
from leave_details
where to_char(leave_start_date,'dd-mon-rr') = to_char(sysdate,'dd-mon-rr')
and leave_status = 'Granted'

但它只在sysdate与leave\u start\u date匹配时显示。我想在 Jmeter 板上显示休假开始日期和休假结束日期之间的天数。我怎样才能做到这一点?这就是我的 Jmeter 板的样子

tvmytwxo

tvmytwxo1#

据推测,日期存储为日期,而不是字符串。所以就这样对待他们吧!
今天休假的电话号码:

select count(*)
from leave_details ld
where leave_start_date <= trunc(sysdate) and
      leave_end_date >= trunc(sysdate) and
      leave_status = 'Granted';
``` `COUNT()` 从不返回 `NULL` 所以不需要额外的逻辑来检查。
目前尚不清楚休假结束是否计入休假期间。以上假设是。
注意:如果您有不确定的假期,其中结束日期未知,则可以将其调整为:

select count(*)
from leave_details ld
where leave_start_date <= trunc(sysdate) and
(leave_end_date >= trunc(sysdate) or leave_end_date is null) and
leave_status = 'Granted'

htrmnn0y

htrmnn0y2#

应该是的

select count(1)
from leave_details ld
where leave_start_date <= trunc(sysdate) and
      leave_end_date >= trunc(sysdate) and
      leave_status = 'Granted';

相关问题