如何将表连接到两个单独的分组子查询?

时间:2013-02-07 02:59:23

标签: tsql

所以这是一个非常奇怪的情况,但我需要弄清楚如何连接两个select语句。我有两个select语句返回“filekeys”列表(员工标识符),就是这样,每个只有一列,我想返回一个包含所有文件密钥的列表。可能有重复或不重复,对我来说无关紧要。

现在通常情况下,我只是调整我的位置,但我不能让它工作,所以也许这就是答案,这是(一个非常基本的版本)正在发生的事情

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小时的每位员工,我都会获得null。

请帮忙! 感谢

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

1 个答案:

答案 0 :(得分: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)
    )
)

根据我们的评论讨论