0

所以这是一个非常奇怪的情况,但我需要弄清楚如何加入两个 select 语句。我有两个选择语句返回一个“文件键”(员工标识符)列表,就是这样,每一个都只是一列,我想返回一个包含所有文件键的列表。可以有重复,也可以不重复,这对我来说并不重要。

现在通常我只会调整我的 where 语句中的内容,但我无法让它工作,所以也许这就是答案,这里是(一个非常基本的版本)正在发生的事情

select yt.filekey from EMPLOYEES yt
inner join (
select filekey, SUM(hours) as test 
from PAYDESHIST 
where WG2 = 1
and eventdate between (date1) and (date2)
group by filekey having SUM(hours) > 40)
ss on yt.FILEKEY = ss.FILEKEY

其中有第二个日期不同

基本上我需要看看员工是否在两周的一个或多个星期内工作超过 40 小时。员工在这两周内工作时间是否超过 40 小时都没关系,稍后将全部过滤到一个列表中。

我已经尝试过完全加入,但对于其中一周工作超过 40 小时的每个员工,我都会得到空值。

请帮忙!谢谢

此外,代码中可能有几个错误,这不是问题,错误是因为实际调用要花更长的时间来获取这些日期和各种疯狂的东西,所以在复制它时我可能错过了括号什么的。

4

1 回答 1

0

答案似乎是这样的:

select yt.filekey from EMPLOYEES yt
inner join (
    select filekey, test from (
        select filekey, SUM(hours) as test 
        from PAYDESHIST 
        where WG2 = 1
        and eventdate between (date1) and (date2)
        group by filekey having SUM(hours) > 40)
        ss on yt.FILEKEY = ss.FILEKEY)
        union all
        select filekey, SUM(hours) as test 
        from PAYDESHIST 
        where WG2 = 1
        and eventdate between (date3) and (date4)
        group by filekey having SUM(hours) > 40)
        ss on yt.FILEKEY = ss.FILEKEY)
    )
)

根据我们的评论讨论

于 2013-02-07T05:40:37.537 回答