DB2如何查找在同一日期处于活动状态的两个用户

3hvapo4f  于 2022-12-23  发布在  DB2
关注(0)|答案(2)|浏览(177)

我正在尝试两个查找在同一日期活跃的用户,我有运行的代码

select place,date,user, artNumber

from jobs
where user in (

select user2

from userActive

where date between 20180101 and 20181011 and user2 = 'nightJob')

这只是给予我当nightJob已被激活,我如何匹配,使结果返回哪些其他用户已在同一时间作为nightJob活动,我想解释的解决方案,因为我正在努力学习.
我听起来像业余爱好者,也许我是,但有人能解释我的代码,我写了它,但我只是想检查如果我理解它正确。我不想固定的结果,它超过一百个用户,但nightJob总是那个特定的用户名。
desired result

6pp0gazn

6pp0gazn1#

尝试以下内容

select place,date,user, artNumber
from jobs
where user in (
select user2
from userActive where jobs.user=userActive.user2 and
date between 20180101 and 20181011 and user2 = 'nightJob')
xkrw2x1b

xkrw2x1b2#

我的解决方案将在输出中再添加两个字段,然后让您完成SQL命令。我在Oracle工作,而不是DB2,但是,我想我能帮上忙。首先,假设您的日期字段定义了到秒的日期值,您需要使用一个函数来修改日期:to_char(date,'YYYYMMDD')。此外,您需要两个(或更多)用户同时工作,因此,我在输出中包括第二个用户。此外,我的结果将显示两个表中的日期匹配。我的查询可能返回重复项。请检查结果并根据需要修改查询。

Select jobs.place, to_char(jobs.date, 'YYYYMMDD'), jobs.user, jobs.artNumber,
    UserActive.user2, to_char(UserActive.date, 'YYYYMMDD')
    from jobs
    join UserActive
      on (to_char(jobs.date, 'YYYYMMDD'), to_char(UserActive.date, 'YYYYMMDD')
   where jobs.user <> UserActive.user2
     and /* put more filters here, if desired */
;

相关问题